Mercurial > hg > octave-lyh > gnulib-hg
changeset 9323:1fe2e97a1130
Put unit test for i-ring module into a normal test module.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Thu, 11 Oct 2007 23:56:06 +0200 |
parents | ff1decf016ff |
children | fd3d63b8135d |
files | ChangeLog lib/i-ring-test.c modules/i-ring-tests tests/test-i-ring.c |
diffstat | 4 files changed, 90 insertions(+), 44 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-10-11 Bruno Haible <bruno@clisp.org> + + * 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 <bruno@clisp.org> * modules/filenamecat-tests: New file.
deleted file mode 100644 --- a/lib/i-ring-test.c +++ /dev/null @@ -1,44 +0,0 @@ -#include <assert.h> -#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; -}
new file mode 100644 --- /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
new file mode 100644 --- /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 <http://www.gnu.org/licenses/>. */ + +/* written by Jim Meyering */ + +#include <config.h> + +#include "i-ring.h" + +#include <stdio.h> +#include <stdlib.h> + +#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; +}