add some tests for obt pieces (binary search, .desktop parsking, linkbase, and inotify watch)

This commit is contained in:
Dana Jansens 2010-09-20 20:57:09 -04:00
parent 7eeae03f06
commit b1fc19711f
6 changed files with 236 additions and 0 deletions

4
.gitignore vendored
View file

@ -102,3 +102,7 @@ tests/wmhints
data/autostart/openbox-autostart
data/autostart/autostart
obrender/rendertest
obt/tests/bstest
obt/tests/ddtest
obt/tests/linktest
obt/tests/watchtest

58
obt/tests/bstest.c Executable file
View file

@ -0,0 +1,58 @@
#/*
#!/bin/sh
#*/
#if 0
gcc -O0 -o ./bstest `pkg-config --cflags --libs obt-3.5` bstest.c && \
./bstest
exit
#endif
/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
bstest.c for the Openbox window manager
Copyright (c) 2010 Dana Jansens
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
See the COPYING file for a copy of the GNU General Public License.
*/
#include "../bsearch.h"
#include <stdio.h>
int main() {
int ar[] = {
2, 4, 5, 7, 12, 34, 45, 56, 57, 67, 67, 68, 68, 69, 70, 71, 89, 100 };
int n = sizeof(ar)/sizeof(ar[0]);
BSEARCH_SETUP(int);
BSEARCH(int, ar, 0, n, 1);
g_assert(!!BSEARCH_FOUND() == FALSE);
BSEARCH(int, ar, 0, n, 0);
g_assert(!!BSEARCH_FOUND() == FALSE);
BSEARCH(int, ar, 0, n, 2);
g_assert(!!BSEARCH_FOUND() == TRUE);
g_assert(BSEARCH_AT() == 0);
BSEARCH(int, ar, 0, n, 58);
g_assert(!!BSEARCH_FOUND() == FALSE);
BSEARCH(int, ar, 0, n, 57);
g_assert(!!BSEARCH_FOUND() == TRUE);
g_assert(BSEARCH_AT() == 8);
BSEARCH(int, ar, 0, n, 55);
g_assert(!!BSEARCH_FOUND() == FALSE);
BSEARCH(int, ar, 0, n, 99);
g_assert(!!BSEARCH_FOUND() == FALSE);
BSEARCH(int, ar, 0, n, 100);
g_assert(!!BSEARCH_FOUND() == TRUE);
g_assert(BSEARCH_AT() == 17);
BSEARCH(int, ar, 0, n, 101);
g_assert(!!BSEARCH_FOUND() == FALSE);
g_print("ok\n");
}

61
obt/tests/ddtest.c Executable file
View file

@ -0,0 +1,61 @@
#/*
#!/bin/sh
#*/
#if 0
gcc -O0 -o ./ddtest `pkg-config --cflags --libs obt-3.5` ddtest.c && \
./ddtest
exit
#endif
/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
ddtest.c for the Openbox window manager
Copyright (c) 2010 Dana Jansens
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
See the COPYING file for a copy of the GNU General Public License.
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "obt/paths.h"
#include "obt/link.h"
#include <glib.h>
gint main(int argc, char **argv)
{
ObtPaths *obtpaths;
ObtLink *dd;
gchar *id;
if (argc < 2) {
g_print("pass path to .desktop\n");
return 1;
}
obtpaths = obt_paths_new();
dd = obt_link_from_ddfile(argv[1], obtpaths, "et", NULL, NULL);
obt_paths_unref(obtpaths);
if (dd) {
g_print("Success\n");
{
gulong i, n;
const GQuark *c = obt_link_app_categories(dd, &n);
for (i = 0; i < n; ++i)
g_print("Category: %s\n",
g_quark_to_string(c[i]));
}
obt_link_unref(dd);
}
return 0;
}

15
obt/tests/ddtest.desktop Normal file
View file

@ -0,0 +1,15 @@
[Desktop Entry]
test=
test2
foo =
#hi
gewh= yuhself
a-r950 = tek;la; fi
hi=bye
you=yeh
hi=double
Type=Application
Exec=foo
Name=myname
Categories=one;two;;three

48
obt/tests/linktest.c Executable file
View file

@ -0,0 +1,48 @@
#/*
#!/bin/sh
#*/
#if 0
gcc -O0 -o ./linktest `pkg-config --cflags --libs obt-3.5` linktest.c && \
./linktest
exit
#endif
/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
linktest.c for the Openbox window manager
Copyright (c) 2010 Dana Jansens
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
See the COPYING file for a copy of the GNU General Public License.
*/
#include "obt/linkbase.h"
#include "obt/paths.h"
#include <glib.h>
#include <locale.h>
gint main()
{
ObtLinkBase *base;
ObtPaths *paths;
GMainLoop *loop;
paths = obt_paths_new();
base = obt_linkbase_new(paths, setlocale(LC_MESSAGES, ""));
printf("done\n");
return 0;
loop = g_main_loop_new(NULL, FALSE);
g_main_loop_run(loop);
return 0;
}

50
obt/tests/watchtest.c Executable file
View file

@ -0,0 +1,50 @@
#/*
#!/bin/sh
#*/
#if 0
gcc -O0 -o ./watchtest `pkg-config --cflags --libs obt-3.5` watchtest.c && \
./watchtest
exit
#endif
/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
watchtest.c for the Openbox window manager
Copyright (c) 2010 Dana Jansens
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
See the COPYING file for a copy of the GNU General Public License.
*/
#include "obt/watch.h"
#include <glib.h>
void func(ObtWatch *w, const gchar *base_path,
const gchar *subpath, ObtWatchNotifyType type,
gpointer data)
{
g_print("base path: %s subpath: %s type=%d\n", base_path, subpath, type);
}
gint main()
{
ObtWatch *watch;
GMainLoop *loop;
watch = obt_watch_new();
obt_watch_add(watch, "/tmp/a", FALSE, func, NULL);
loop = g_main_loop_new(NULL, FALSE);
g_main_loop_run(loop);
return 0;
}