/
MudOS_0.9.19/bin/
MudOS_0.9.19/doc/concepts/
MudOS_0.9.19/doc/driver/
MudOS_0.9.19/doc/efuns/bitstrings/
MudOS_0.9.19/doc/efuns/buffers/
MudOS_0.9.19/doc/efuns/communication/
MudOS_0.9.19/doc/efuns/core/
MudOS_0.9.19/doc/efuns/mappings/
MudOS_0.9.19/doc/efuns/math/
MudOS_0.9.19/doc/efuns/security/
MudOS_0.9.19/doc/lpc/constructs/
MudOS_0.9.19/doc/lpc/types/
MudOS_0.9.19/doc/platforms/
MudOS_0.9.19/etc/
MudOS_0.9.19/mudlib/
MudOS_0.9.19/mudlib/lil/
MudOS_0.9.19/mudlib/lil/clone/
MudOS_0.9.19/mudlib/lil/command/
MudOS_0.9.19/mudlib/lil/data/
MudOS_0.9.19/mudlib/lil/etc/
MudOS_0.9.19/mudlib/lil/include/
MudOS_0.9.19/mudlib/lil/inherit/
MudOS_0.9.19/mudlib/lil/inherit/master/
MudOS_0.9.19/mudlib/lil/log/
MudOS_0.9.19/mudlib/lil/single/
MudOS_0.9.19/mudlib/lil/u/
MudOS_0.9.19/src/testsuite/
MudOS_0.9.19/src/testsuite/clone/
MudOS_0.9.19/src/testsuite/command/
MudOS_0.9.19/src/testsuite/data/
MudOS_0.9.19/src/testsuite/etc/
MudOS_0.9.19/src/testsuite/include/
MudOS_0.9.19/src/testsuite/inherit/
MudOS_0.9.19/src/testsuite/inherit/master/
MudOS_0.9.19/src/testsuite/log/
MudOS_0.9.19/src/testsuite/single/
MudOS_0.9.19/src/testsuite/single/efuns/
MudOS_0.9.19/src/testsuite/u/
/*
          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];
	}
}