/* efun: mixed read_buffer(string|buffer, void|int, void|int); test author: John Garnett date: 1993 November 8 */ inherit "/inherit/tests"; #define TEST_STRING "ABC" buffer b; int i; int test(int which) { string s; switch (which) { case 0: describe_test("string read_buffer(buffer b)"); s = read_buffer(b); return (s == TEST_STRING); break; case 1: describe_test("string read_buffer(buffer b, 0)"); s = read_buffer(b); return (s == TEST_STRING); break; case 2: describe_test("string read_buffer(buffer b, sizeof(b)-1)"); s = read_buffer(b, sizeof(b)-1); return (s == TEST_STRING[i..i]); break; case 3: describe_test("string read_buffer(buffer b, sizeof(b))"); s = read_buffer(b, sizeof(b)); return (s == 0); break; case 4: describe_test("string read_buffer(buffer b, -sizeof(buffer))"); s = read_buffer(b, -sizeof(b)); return (s == TEST_STRING); break; case 5: describe_test("string read_buffer(buffer b, -(sizeof(b)+1))"); s = read_buffer(b, -(sizeof(b) + 1)); return (s == 0); break; case 6: describe_test("string read_buffer(buffer b, 1, 1)"); s = read_buffer(b, 1, 1); return (s == TEST_STRING[1..1]); break; case 7: describe_test("string read_buffer(buffer b, 1, sizeof(b))"); s = read_buffer(b, 1, sizeof(b)); return (s == TEST_STRING[1..i]); break; /* add cases here to handle reading from files */ default: return -1; break; } } void create() { int j, limit; i = strlen(TEST_STRING) - 1; limit = strlen(TEST_STRING); b = allocate_buffer(limit); for (j = 0; j < limit; j++) { b[j] = TEST_STRING[j]; } }