1 // Copyright (c) 1999-2018 David Muse
2 // See the file COPYING for more information
3 
4 #include <rudiments/protocolentry.h>
5 #include <rudiments/charstring.h>
6 #include <rudiments/stdio.h>
7 #include "test.cpp"
8 
main(int argc,const char ** argv)9 int main(int argc, const char **argv) {
10 
11 	// uninitialized
12 	protocolentry	pe;
13 	stdoutput.printf("uninitialized:\n");
14 	test("name",!pe.getName());
15 	test("alias list",!pe.getAliasList());
16 	test("number",pe.getNumber()==-1);
17 	stdoutput.printf("\n");
18 
19 
20 	// get the protocol information for "tcp"
21 	stdoutput.printf("tcp:\n");
22 	pe.initialize("tcp");
23 	test("name",!charstring::compare(pe.getName(),"tcp"));
24 	test("alias list",pe.getAliasList() &&
25 		!charstring::compareIgnoringCase(pe.getAliasList()[0],"tcp"));
26 	test("number",pe.getNumber()==6);
27 	stdoutput.printf("\n");
28 
29 	// get the protocol information for protocol number 6
30 	pe.initialize(6);
31 	stdoutput.printf("6:\n");
32 	test("name",!charstring::compare(pe.getName(),"tcp"));
33 	test("alias list",pe.getAliasList() &&
34 		!charstring::compareIgnoringCase(pe.getAliasList()[0],"tcp"));
35 	test("number",pe.getNumber()==6);
36 	stdoutput.printf("\n");
37 
38 	// null-safety
39 	stdoutput.printf("NULL:\n");
40 	pe.initialize((const char *)NULL);
41 	test("name",!pe.getName());
42 	test("alias list",!pe.getAliasList());
43 	test("number",pe.getNumber()==-1);
44 	stdoutput.printf("\n");
45 }
46