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

hannes at gwydiondylan.org hannes at gwydiondylan.org
Wed Jan 2 21:42:26 CET 2008


Author: hannes
Date: Wed Jan  2 21:42:25 2008
New Revision: 11601

Modified:
   trunk/libraries/packetizer/packetizer-test/packetizer-test.dylan
Log:
Job: minor
fix test cases
add new test which fails

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	Wed Jan  2 21:42:25 2008
@@ -74,13 +74,13 @@
               as(<stretchy-byte-vector-subsequence>, #(#x3, #x0, #x0, #x23, #x42, #x23, #x42)),
               byte-vector.packet);
 end;
-define protocol static-start (container-frame)
+define protocol static-start-frame (container-frame)
   field a :: <unsigned-byte>;
   field b :: <raw-frame>, static-start: 24;
 end;
 
 define test static-start-test ()
-  let frame = parse-frame(<static-start>, #(#x3, #x4, #x5, #x6));
+  let frame = parse-frame(<static-start-frame>, #(#x3, #x4, #x5, #x6));
   let field-list = fields(frame);
   static-checker(field-list[0], 0, 8, 8);
   static-checker(field-list[1], 24, $unknown-at-compile-time, $unknown-at-compile-time);
@@ -89,13 +89,13 @@
 end;  
 
 define test static-start-assemble ()
-  let frame = make(<static-start>, a: #x23, b: parse-frame(<raw-frame>, as(<byte-vector>, #(#x2, #x3, #x4, #x5))));
+  let frame = make(<static-start-frame>, a: #x23, b: parse-frame(<raw-frame>, as(<byte-vector>, #(#x2, #x3, #x4, #x5))));
   let byte-vector = assemble-frame(frame);
   check-equal("Assembling static start frame is correct (including padding)",
               as(<byte-vector>, #(#x23, #x0, #x0, #x2, #x3, #x4, #x5)),
               byte-vector.packet);
 end;
-define protocol repeated-test (container-frame)
+define protocol repeated-test-frame (container-frame)
   field foo :: <unsigned-byte>;
   repeated field bar :: <unsigned-byte>,
     reached-end?: frame = 0;
@@ -103,7 +103,7 @@
 end;
 
 define test repeated-test ()
-  let frame = parse-frame(<repeated-test>, #(#x23, #x42, #x43, #x44, #x67, #x0, #x55));
+  let frame = parse-frame(<repeated-test-frame>, #(#x23, #x42, #x43, #x44, #x67, #x0, #x55));
   let field-list = fields(frame);
   static-checker(field-list[0], 0, 8, 8);
   static-checker(field-list[1], 8, $unknown-at-compile-time, $unknown-at-compile-time);
@@ -114,7 +114,7 @@
 end;
 
 define test repeated-assemble ()
-  let frame = make(<repeated-test>,
+  let frame = make(<repeated-test-frame>,
                    foo: #x23,
                    bar: as(<stretchy-vector>, #(#x23, #x42, #x23, #x42, #x0)),
                    after: #x44);
@@ -124,7 +124,7 @@
               byte-vector.packet);
 end;
 
-define protocol repeated-and-dynamic-test (header-frame)
+define protocol repeated-and-dynamic-test-frame (header-frame)
   field header-length :: <unsigned-byte>,
 // FIXME:    fixup: byte-offset(frame-size(frame.header-length) + frame-size(frame.type-code) + frame-size(frame.options));
     fixup: frame.options.size + 2;
@@ -136,7 +136,7 @@
 end;
 
 define test repeated-and-dynamic-test ()
-  let frame = parse-frame(<repeated-and-dynamic-test>,
+  let frame = parse-frame(<repeated-and-dynamic-test-frame>,
                           #(#x8, #x23, #x42, #x43, #x44, #x45, #x46, #x47, #x80, #x81, #x82));
   let field-list = fields(frame);
   static-checker(field-list[0], 0, 8, 8);
@@ -150,7 +150,7 @@
 end;
 
 define test repeated-and-dynamic-test2 ()
-  let frame = parse-frame(<repeated-and-dynamic-test>,
+  let frame = parse-frame(<repeated-and-dynamic-test-frame>,
                           #(#x8, #x23, #x42, #x43, #x44, #x0, #x46, #x47, #x80, #x81, #x82));
   let field-list = fields(frame);
   frame-field-checker(0, frame, 0, 8, 8);
@@ -160,7 +160,7 @@
 end;
 
 define test repeated-and-dynamic-assemble ()
-  let frame = make(<repeated-and-dynamic-test>,
+  let frame = make(<repeated-and-dynamic-test-frame>,
                    options: as(<stretchy-vector>, #(#x23, #x42, #x23, #x42, #x23, #x0)),
                    payload: parse-frame(<raw-frame>, as(<byte-vector>, #(#x0, #x1, #x2, #x3, #x4))));
   let byte-vector = assemble-frame(frame);
@@ -169,7 +169,7 @@
               byte-vector.packet);
 end;
 
-define protocol count-repeated-test (container-frame)
+define protocol count-repeated-test-frame (container-frame)
   field foo :: <unsigned-byte>,
     fixup: frame.fragments.size;
   repeated field fragments :: <unsigned-byte>,
@@ -178,7 +178,7 @@
 end;
 
 define test count-repeated-test ()
-  let frame = parse-frame(<count-repeated-test>,
+  let frame = parse-frame(<count-repeated-test-frame>,
                           #(#x3, #x23, #x42, #x43, #x44, #x0, #x46, #x47, #x80, #x81, #x82));
   let field-list = fields(frame);
   static-checker(field-list[0], 0, 8, 8);
@@ -190,7 +190,7 @@
 end;
 
 define test count-repeated-assemble ()
-  let frame = make(<count-repeated-test>,
+  let frame = make(<count-repeated-test-frame>,
                    fragments: as(<stretchy-vector>, #(#x1, #x2, #x3, #x4, #x5, #x6, #x7)),
                    last-field: #x23);
   let byte-vector = assemble-frame(frame);
@@ -402,6 +402,18 @@
   check-equal("assembling of dns-foo[1] is correct", 42, as.packet[1]);
 end;
 
+define protocol dyn-length-in-container (container-frame)
+  length frame.mylength * 8;
+  field foo :: <unsigned-byte> = 0;
+  field mylength :: <unsigned-byte> = 3;
+end;
+
+define test dynlength ()
+  let f = make(<dyn-length-in-container>);
+  check-equal("size of frame with length is correct", 24, f.frame-size);
+  let as = assemble-frame(f);
+  check-equal("size of assembled frame is correct", 3, as.packet.size);
+end;
 define suite packetizer-suite ()
   test packetizer-parser;
   test packetizer-dynamic-parser;
@@ -417,6 +429,7 @@
   test dynamic-length;
   test half-byte-parsing;
   test dns-foo-parsing;
+  test dynlength;
 end;
 
 define suite packetizer-assemble-suite ()



More information about the chatter mailing list