From: Bruno Haible Date: Thu, 11 Oct 2007 21:56:06 +0000 (+0200) Subject: Put unit test for i-ring module into a normal test module. X-Git-Tag: v0.0~101 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=3b9556605613bd4346c02e0e75abd8f492aff44e;p=gnulib.git Put unit test for i-ring module into a normal test module. --- diff --git a/ChangeLog b/ChangeLog index cc8db7ed9..76843356e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2007-10-11 Bruno Haible + * modules/i-ring-tests: New file. + * tests/test-i-ring.c: Renamed from lib/i-ring-test.c. Use ASSERT + instead of assert. + +2007-10-11 Bruno Haible + * modules/filenamecat-tests: New file. * tests/test-filenamecat.c: New file, extracted from lib/filenamecat.c. * lib/filenamecat.c: Remove test code. diff --git a/lib/i-ring-test.c b/lib/i-ring-test.c deleted file mode 100644 index 392e2f60a..000000000 --- a/lib/i-ring-test.c +++ /dev/null @@ -1,44 +0,0 @@ -#include -#include "i-ring.h" -/* Test with this: - gcc -I. -Wall -W -O i-ring-test.c i-ring.c -L. -lcoreutils && ./a.out -*/ - -int -main () -{ - I_ring ir; - i_ring_init (&ir, -1); - int o = i_ring_push (&ir, 1); - assert (o == -1); - o = i_ring_push (&ir, 2); - assert (o == -1); - o = i_ring_push (&ir, 3); - assert (o == -1); - o = i_ring_push (&ir, 4); - assert (o == -1); - o = i_ring_push (&ir, 5); - assert (o == 1); - o = i_ring_push (&ir, 6); - assert (o == 2); - o = i_ring_push (&ir, 7); - assert (o == 3); - - o = i_ring_pop (&ir); - assert (o == 7); - o = i_ring_pop (&ir); - assert (o == 6); - o = i_ring_pop (&ir); - assert (o == 5); - o = i_ring_pop (&ir); - assert (o == 4); - assert (i_ring_empty (&ir)); - - o = i_ring_push (&ir, 8); - assert (o == -1); - o = i_ring_pop (&ir); - assert (o == 8); - assert (i_ring_empty (&ir)); - - return 0; -} diff --git a/modules/i-ring-tests b/modules/i-ring-tests new file mode 100644 index 000000000..3385ca585 --- /dev/null +++ b/modules/i-ring-tests @@ -0,0 +1,10 @@ +Files: +tests/test-i-ring.c + +Depends-on: + +configure.ac: + +Makefile.am: +TESTS += test-i-ring +check_PROGRAMS += test-i-ring diff --git a/tests/test-i-ring.c b/tests/test-i-ring.c new file mode 100644 index 000000000..0e0691af3 --- /dev/null +++ b/tests/test-i-ring.c @@ -0,0 +1,74 @@ +/* Test the simple ring buffer. + Copyright (C) 2006-2007 Free Software Foundation, Inc. + + 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 3 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. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* written by Jim Meyering */ + +#include + +#include "i-ring.h" + +#include +#include + +#define ASSERT(expr) \ + do \ + { \ + if (!(expr)) \ + { \ + fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \ + abort (); \ + } \ + } \ + while (0) + +int +main () +{ + I_ring ir; + i_ring_init (&ir, -1); + int o = i_ring_push (&ir, 1); + ASSERT (o == -1); + o = i_ring_push (&ir, 2); + ASSERT (o == -1); + o = i_ring_push (&ir, 3); + ASSERT (o == -1); + o = i_ring_push (&ir, 4); + ASSERT (o == -1); + o = i_ring_push (&ir, 5); + ASSERT (o == 1); + o = i_ring_push (&ir, 6); + ASSERT (o == 2); + o = i_ring_push (&ir, 7); + ASSERT (o == 3); + + o = i_ring_pop (&ir); + ASSERT (o == 7); + o = i_ring_pop (&ir); + ASSERT (o == 6); + o = i_ring_pop (&ir); + ASSERT (o == 5); + o = i_ring_pop (&ir); + ASSERT (o == 4); + ASSERT (i_ring_empty (&ir)); + + o = i_ring_push (&ir, 8); + ASSERT (o == -1); + o = i_ring_pop (&ir); + ASSERT (o == 8); + ASSERT (i_ring_empty (&ir)); + + return 0; +}