[Gd-chatter] r11632 - trunk/libraries/packetizer/packetizer-test

andreas at gwydiondylan.org andreas at gwydiondylan.org
Fri Jan 18 00:08:22 CET 2008


Author: andreas
Date: Fri Jan 18 00:08:21 2008
New Revision: 11632

Modified:
   trunk/libraries/packetizer/packetizer-test/packetizer-test.dylan
Log:
job: 7299

Test cases for enum fields.


Modified: trunk/libraries/packetizer/packetizer-test/packetizer-test.dylan
==============================================================================
--- trunk/libraries/packetizer/packetizer-test/packetizer-test.dylan	(original)
+++ trunk/libraries/packetizer/packetizer-test/packetizer-test.dylan	Fri Jan 18 00:08:21 2008
@@ -428,7 +428,7 @@
   let f = make(<dyn-length-in-container>);
   let as = assemble-frame(f);
   check-equal("assembling of dynlength[1] works correct", 2, as.packet[1]);
-  let g = make(<dyn-length-in-container>);
+  let g = make(<dyn-length-in-container>, mylength: 3);
   let as = assemble-frame(g);
   check-equal("assembly of dynlength[0] works correct", 0, as.packet[0]);
   //hah, no padding support!
@@ -458,6 +458,31 @@
   frame-field-checker(1, f, 24, 32, 56);
 end;
 
+define protocol enum-field-test (container-frame)
+  enum field foo :: <unsigned-byte>,
+    mappings: { 1 <=> #"hello",
+                2 <=> #"foobar" };
+end;
+
+define test enum-assemble-test ()
+  let frame = make(<enum-field-test>, foo: #"hello");
+  let assembled-frame = assemble-frame(frame);
+  check-equal("enum field value", 1, assembled-frame.packet[0]);
+  assembled-frame.foo := #"foobar";
+  check-equal("enum field value", 2, assembled-frame.packet[0]);
+  assembled-frame.foo := 23;
+  check-equal("enum field value", 23, assembled-frame.packet[0]);
+end;
+
+define test enum-parse-test ()
+  let f = parse-frame(<enum-field-test>, #[#x01]);
+  check-equal("enum field parses correct to symbol", #"hello", f.foo);
+  let g = parse-frame(<enum-field-test>, #[#x03]);
+  check-equal("enum field parses correct to integer", 3, g.foo);
+  g.foo := #"foobar";
+  g.foo := 23;
+end;
+
 define suite packetizer-suite ()
   test packetizer-parser;
   test packetizer-dynamic-parser;
@@ -476,6 +501,7 @@
   test dynlength;
   test dyn-length-client;
   test dyn-length-client2;
+  test enum-parse-test;
 end;
 
 define suite packetizer-assemble-suite ()
@@ -495,10 +521,11 @@
   test bits-assemble;
   test dns-foo-assemble;
   test dynlength-assemble;
+  test enum-assemble-test;
 end;
 
 begin
-  run-test-application(packetizer-suite); //, arguments: #("-debug"));
-  run-test-application(packetizer-assemble-suite); //, arguments: #("-debug"));
+  run-test-application(packetizer-suite, arguments: #("-debug"));
+  run-test-application(packetizer-assemble-suite, arguments: #("-debug"));
 end;
 



More information about the chatter mailing list