libgee r22 - in trunk: . gee tests
- From: juergbi svn gnome org
- To: svn-commits-list gnome org
- Subject: libgee r22 - in trunk: . gee tests
- Date: Tue, 26 Feb 2008 20:48:57 +0000 (GMT)
Author: juergbi
Date: Tue Feb 26 20:48:57 2008
New Revision: 22
URL: http://svn.gnome.org/viewvc/libgee?rev=22&view=rev
Log:
2008-02-26 Juerg Billeter <j bitron ch>
* Makefile.am, Makefile.decl, configure.ac, gee/Makefile.am,
tests/Makefile.am, tests/testarraylist.vala,
tests/testhashmap.vala, tests/testhashset.vala: add unit tests
Added:
trunk/Makefile.decl
trunk/tests/
trunk/tests/Makefile.am
trunk/tests/testarraylist.vala
trunk/tests/testhashmap.vala
trunk/tests/testhashset.vala
Modified:
trunk/ChangeLog
trunk/Makefile.am
trunk/configure.ac
trunk/gee/Makefile.am
Modified: trunk/Makefile.am
==============================================================================
--- trunk/Makefile.am (original)
+++ trunk/Makefile.am Tue Feb 26 20:48:57 2008
@@ -1,13 +1,16 @@
+include $(top_srcdir)/Makefile.decl
+
NULL =
SUBDIRS = \
gee \
+ tests \
$(NULL)
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = gee-1.0.pc
-EXTRA_DIST = \
+EXTRA_DIST += \
MAINTAINERS \
gee-1.0.pc.in \
$(NULL)
Added: trunk/Makefile.decl
==============================================================================
--- (empty file)
+++ trunk/Makefile.decl Tue Feb 26 20:48:57 2008
@@ -0,0 +1,57 @@
+# GLIB - Library of useful C routines
+
+GTESTER = gtester
+GTESTER_REPORT = gtester-report
+
+# initialize variables for unconditional += appending
+EXTRA_DIST =
+TEST_PROGS =
+
+### testing rules
+
+# test: run all tests in cwd and subdirs
+test: ${TEST_PROGS}
+ @test -z "${TEST_PROGS}" || ${GTESTER} --verbose ${TEST_PROGS}
+ @ for subdir in $(SUBDIRS) . ; do \
+ test "$$subdir" = "." -o "$$subdir" = "po" || \
+ ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
+ done
+# test-report: run tests in subdirs and generate report
+# perf-report: run tests in subdirs with -m perf and generate report
+# full-report: like test-report: with -m perf and -m slow
+test-report perf-report full-report: ${TEST_PROGS}
+ @test -z "${TEST_PROGS}" || { \
+ case $@ in \
+ test-report) test_options="-k";; \
+ perf-report) test_options="-k -m=perf";; \
+ full-report) test_options="-k -m=perf -m=slow";; \
+ esac ; \
+ if test -z "$$GTESTER_LOGDIR" ; then \
+ ${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \
+ elif test -n "${TEST_PROGS}" ; then \
+ ${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \
+ fi ; \
+ }
+ @ ignore_logdir=true ; \
+ if test -z "$$GTESTER_LOGDIR" ; then \
+ GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \
+ ignore_logdir=false ; \
+ fi ; \
+ for subdir in $(SUBDIRS) . ; do \
+ test "$$subdir" = "." -o "$$subdir" = "po" || \
+ ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
+ done ; \
+ $$ignore_logdir || { \
+ echo '<?xml version="1.0"?>' > $ xml ; \
+ echo '<report-collection>' >> $ xml ; \
+ for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \
+ sed '1,1s/^<?xml\b[^>?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $ xml ; \
+ done ; \
+ echo >> $ xml ; \
+ echo '</report-collection>' >> $ xml ; \
+ rm -rf "$$GTESTER_LOGDIR"/ ; \
+ ${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $ xml >$ html ; \
+ }
+.PHONY: test test-report perf-report full-report
+# run make test as part of make check
+check-local: test
Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac (original)
+++ trunk/configure.ac Tue Feb 26 20:48:57 2008
@@ -24,6 +24,7 @@
AC_CONFIG_FILES([Makefile
gee-1.0.pc
- gee/Makefile])
+ gee/Makefile
+ tests/Makefile])
AC_OUTPUT
Modified: trunk/gee/Makefile.am
==============================================================================
--- trunk/gee/Makefile.am (original)
+++ trunk/gee/Makefile.am Tue Feb 26 20:48:57 2008
@@ -1,3 +1,5 @@
+include $(top_srcdir)/Makefile.decl
+
NULL =
AM_CPPFLAGS = \
@@ -53,4 +55,4 @@
gee-1.0.vapi \
$(NULL)
-EXTRA_DIST = $(libgee_la_VALASOURCES) gee-1.0.vapi gee.vala.stamp
+EXTRA_DIST += $(libgee_la_VALASOURCES) gee-1.0.vapi gee.vala.stamp
Added: trunk/tests/Makefile.am
==============================================================================
--- (empty file)
+++ trunk/tests/Makefile.am Tue Feb 26 20:48:57 2008
@@ -0,0 +1,39 @@
+include $(top_srcdir)/Makefile.decl
+
+NULL =
+
+AM_CPPFLAGS = \
+ -I$(top_srcdir) \
+ $(GLIB_CFLAGS) \
+ $(NULL)
+
+noinst_PROGRAMS = $(TEST_PROGS)
+
+progs_ldadd = $(GLIB_LIBS) ../gee/libgee.la
+
+TEST_PROGS += testarraylist
+testarraylist_VALASOURCES = testarraylist.vala
+testarraylist_SOURCES = testarraylist.c testarraylist.h
+$(testarraylist_SOURCES): $(testarraylist_VALASOURCES)
+ $(VALAC) --basedir $(top_srcdir) --vapidir $(top_srcdir)/gee --pkg gee-1.0 $^
+ touch $@
+testarraylist_LDADD = $(progs_ldadd)
+
+TEST_PROGS += testhashmap
+testhashmap_VALASOURCES = testhashmap.vala
+testhashmap_SOURCES = testhashmap.c testhashmap.h
+$(testhashmap_SOURCES): $(testhashmap_VALASOURCES)
+ $(VALAC) --basedir $(top_srcdir) --vapidir $(top_srcdir)/gee --pkg gee-1.0 $^
+ touch $@
+testhashmap_LDADD = $(progs_ldadd)
+
+TEST_PROGS += testhashset
+testhashset_VALASOURCES = testhashset.vala
+testhashset_SOURCES = testhashset.c testhashset.h
+$(testhashset_SOURCES): $(testhashset_VALASOURCES)
+ $(VALAC) --basedir $(top_srcdir) --vapidir $(top_srcdir)/gee --pkg gee-1.0 $^
+ touch $@
+testhashset_LDADD = $(progs_ldadd)
+
+EXTRA_DIST += $(testhashset_VALASOURCES)
+
Added: trunk/tests/testarraylist.vala
==============================================================================
--- (empty file)
+++ trunk/tests/testarraylist.vala Tue Feb 26 20:48:57 2008
@@ -0,0 +1,93 @@
+/* testarraylist.vala
+ *
+ * Copyright (C) 2008 JÃrg Billeter
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+
+ * This library 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
+ * Lesser General Public License for more details.
+
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Author:
+ * JÃrg Billeter <j bitron ch>
+ */
+
+using GLib;
+using Gee;
+
+void test_arraylist_int_add () {
+ var arraylist = new ArrayList<int> ();
+
+ arraylist.add (42);
+ assert (arraylist.contains (42));
+ assert (arraylist.size == 1);
+}
+
+void test_arraylist_int_iterator () {
+ var arraylist = new ArrayList<int> ();
+ arraylist.add (42);
+
+ var it = arraylist.iterator ();
+ assert (it.next ());
+ assert (it.get () == 42);
+ assert (!it.next ());
+}
+
+void test_arraylist_int_remove () {
+ var arraylist = new ArrayList<int> ();
+ arraylist.add (42);
+
+ arraylist.remove (42);
+ assert (!arraylist.contains (42));
+ assert (arraylist.size == 0);
+}
+
+void test_arraylist_string_add () {
+ var arraylist = new ArrayList<string> (str_equal);
+
+ arraylist.add ("hello");
+ assert (arraylist.contains ("hello"));
+ assert (arraylist.size == 1);
+}
+
+void test_arraylist_string_iterator () {
+ var arraylist = new ArrayList<string> (str_equal);
+ arraylist.add ("hello");
+
+ var it = arraylist.iterator ();
+ assert (it.next ());
+ assert (it.get () == "hello");
+ assert (!it.next ());
+}
+
+void test_arraylist_string_remove () {
+ var arraylist = new ArrayList<string> (str_equal);
+ arraylist.add ("hello");
+
+ arraylist.remove ("hello");
+ assert (!arraylist.contains ("hello"));
+ assert (arraylist.size == 0);
+}
+
+void main (string[] args) {
+ Test.init (ref args);
+
+ Test.add_func ("/arraylist/int/add", test_arraylist_int_add);
+ Test.add_func ("/arraylist/int/iterator", test_arraylist_int_iterator);
+ Test.add_func ("/arraylist/int/remove", test_arraylist_int_remove);
+
+ Test.add_func ("/arraylist/string/add", test_arraylist_string_add);
+ Test.add_func ("/arraylist/string/iterator", test_arraylist_string_iterator);
+ Test.add_func ("/arraylist/string/remove", test_arraylist_string_remove);
+
+ Test.run ();
+}
+
Added: trunk/tests/testhashmap.vala
==============================================================================
--- (empty file)
+++ trunk/tests/testhashmap.vala Tue Feb 26 20:48:57 2008
@@ -0,0 +1,73 @@
+/* testhashmap.vala
+ *
+ * Copyright (C) 2008 JÃrg Billeter
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+
+ * This library 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
+ * Lesser General Public License for more details.
+
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Author:
+ * JÃrg Billeter <j bitron ch>
+ */
+
+using GLib;
+using Gee;
+
+void test_hashmap_int_int_remove () {
+ var hashmap = new HashMap<int,int> ();
+ hashmap.set (42, 23);
+
+ hashmap.remove (42);
+ assert (!hashmap.contains (42));
+ assert (hashmap.size == 0);
+}
+
+void test_hashmap_int_int_set () {
+ var hashmap = new HashMap<int,int> ();
+
+ hashmap.set (42, 23);
+ assert (hashmap.contains (42));
+ assert (hashmap.get (42) == 23);
+ assert (hashmap.size == 1);
+}
+
+void test_hashmap_string_string_remove () {
+ var hashmap = new HashMap<string,string> (str_hash, str_equal, str_equal);
+ hashmap.set ("hello", "world");
+
+ hashmap.remove ("hello");
+ assert (!hashmap.contains ("hello"));
+ assert (hashmap.size == 0);
+}
+
+void test_hashmap_string_string_set () {
+ var hashmap = new HashMap<string,string> (str_hash, str_equal, str_equal);
+
+ hashmap.set ("hello", "world");
+ assert (hashmap.contains ("hello"));
+ assert (hashmap.get ("hello") == "world");
+ assert (hashmap.size == 1);
+}
+
+void main (string[] args) {
+ Test.init (ref args);
+
+ Test.add_func ("/hashmap/int-int/remove", test_hashmap_int_int_remove);
+ Test.add_func ("/hashmap/int-int/set", test_hashmap_int_int_set);
+
+ Test.add_func ("/hashmap/string-string/remove", test_hashmap_string_string_remove);
+ Test.add_func ("/hashmap/string-string/set", test_hashmap_string_string_set);
+
+ Test.run ();
+}
+
Added: trunk/tests/testhashset.vala
==============================================================================
--- (empty file)
+++ trunk/tests/testhashset.vala Tue Feb 26 20:48:57 2008
@@ -0,0 +1,93 @@
+/* testhashset.vala
+ *
+ * Copyright (C) 2008 JÃrg Billeter
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+
+ * This library 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
+ * Lesser General Public License for more details.
+
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Author:
+ * JÃrg Billeter <j bitron ch>
+ */
+
+using GLib;
+using Gee;
+
+void test_hashset_int_add () {
+ var hashset = new HashSet<int> ();
+
+ hashset.add (42);
+ assert (hashset.contains (42));
+ assert (hashset.size == 1);
+}
+
+void test_hashset_int_iterator () {
+ var hashset = new HashSet<int> ();
+ hashset.add (42);
+
+ var it = hashset.iterator ();
+ assert (it.next ());
+ assert (it.get () == 42);
+ assert (!it.next ());
+}
+
+void test_hashset_int_remove () {
+ var hashset = new HashSet<int> ();
+ hashset.add (42);
+
+ hashset.remove (42);
+ assert (!hashset.contains (42));
+ assert (hashset.size == 0);
+}
+
+void test_hashset_string_add () {
+ var hashset = new HashSet<string> (str_hash, str_equal);
+
+ hashset.add ("hello");
+ assert (hashset.contains ("hello"));
+ assert (hashset.size == 1);
+}
+
+void test_hashset_string_iterator () {
+ var hashset = new HashSet<string> (str_hash, str_equal);
+ hashset.add ("hello");
+
+ var it = hashset.iterator ();
+ assert (it.next ());
+ assert (it.get () == "hello");
+ assert (!it.next ());
+}
+
+void test_hashset_string_remove () {
+ var hashset = new HashSet<string> (str_hash, str_equal);
+ hashset.add ("hello");
+
+ hashset.remove ("hello");
+ assert (!hashset.contains ("hello"));
+ assert (hashset.size == 0);
+}
+
+void main (string[] args) {
+ Test.init (ref args);
+
+ Test.add_func ("/hashset/int/add", test_hashset_int_add);
+ Test.add_func ("/hashset/int/iterator", test_hashset_int_iterator);
+ Test.add_func ("/hashset/int/remove", test_hashset_int_remove);
+
+ Test.add_func ("/hashset/string/add", test_hashset_string_add);
+ Test.add_func ("/hashset/string/iterator", test_hashset_string_iterator);
+ Test.add_func ("/hashset/string/remove", test_hashset_string_remove);
+
+ Test.run ();
+}
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]