From b1fc19711f431b68344ac471990a9f5153a875ee Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 20 Sep 2010 20:57:09 -0400 Subject: [PATCH] add some tests for obt pieces (binary search, .desktop parsking, linkbase, and inotify watch) --- .gitignore | 4 +++ obt/tests/bstest.c | 58 ++++++++++++++++++++++++++++++++++++++ obt/tests/ddtest.c | 61 ++++++++++++++++++++++++++++++++++++++++ obt/tests/ddtest.desktop | 15 ++++++++++ obt/tests/linktest.c | 48 +++++++++++++++++++++++++++++++ obt/tests/watchtest.c | 50 ++++++++++++++++++++++++++++++++ 6 files changed, 236 insertions(+) create mode 100755 obt/tests/bstest.c create mode 100755 obt/tests/ddtest.c create mode 100644 obt/tests/ddtest.desktop create mode 100755 obt/tests/linktest.c create mode 100755 obt/tests/watchtest.c diff --git a/.gitignore b/.gitignore index 79e2b423..758f2432 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/obt/tests/bstest.c b/obt/tests/bstest.c new file mode 100755 index 00000000..75818551 --- /dev/null +++ b/obt/tests/bstest.c @@ -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 + +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"); +} diff --git a/obt/tests/ddtest.c b/obt/tests/ddtest.c new file mode 100755 index 00000000..69a9e1cf --- /dev/null +++ b/obt/tests/ddtest.c @@ -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 +#include +#include +#include "obt/paths.h" +#include "obt/link.h" +#include + +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; +} diff --git a/obt/tests/ddtest.desktop b/obt/tests/ddtest.desktop new file mode 100644 index 00000000..16d76aaa --- /dev/null +++ b/obt/tests/ddtest.desktop @@ -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 diff --git a/obt/tests/linktest.c b/obt/tests/linktest.c new file mode 100755 index 00000000..022ba35d --- /dev/null +++ b/obt/tests/linktest.c @@ -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 +#include + +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; +} diff --git a/obt/tests/watchtest.c b/obt/tests/watchtest.c new file mode 100755 index 00000000..9ebdbaee --- /dev/null +++ b/obt/tests/watchtest.c @@ -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 + +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; +}