]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #513 in SNORT/snort3 from obfuscator_test_fix to master
authorRuss Combs (rucombs) <rucombs@cisco.com>
Fri, 10 Jun 2016 19:21:49 +0000 (15:21 -0400)
committerRuss Combs (rucombs) <rucombs@cisco.com>
Fri, 10 Jun 2016 19:21:49 +0000 (15:21 -0400)
Squashed commit of the following:

commit fe083f26df18ae94968dcca1e8f5017d4329922a
Author: Victor Roemer <viroemer@cisco.com>
Date:   Thu Jun 9 18:57:27 2016 -0400

    Fix Test_{1,2,3}_Block tests.
    Add Test_3_Block_with_Gaps

src/log/test/obfuscator_test.cc

index ae697e404190c84038b94dd5880e84b557eb5162..ee5efc7cef1882de65b3dceea081e0649d377169 100644 (file)
@@ -29,124 +29,145 @@ TEST_GROUP(ObfuscatorTests)
 
 TEST(ObfuscatorTests, Test_1_Block)
 {
-       char buf[70];
-       memset(buf, 'A', sizeof(buf)-1);
-       buf[ sizeof(buf)-1 ] = '\0';
+    char buf[70];
+    memset(buf, 'A', sizeof(buf)-1);
+    buf[ sizeof(buf)-1 ] = '\0';
 
-       Obfuscator ob;
+    Obfuscator ob;
 
-       ob.push(0, sizeof(buf)-1);
+    ob.push(0, sizeof(buf)-1);
 
     ObfuscatorBlock b;
-    for ( bool more = ob.first(b);
-               more == true;
-               more = ob.next(b) )
-               memset(&buf[ b.offset ], '.', b.length);
+    for ( bool more = ob.first(b); more; more = ob.next(b) )
+        memset(&buf[ b.offset ], '.', b.length);
 
-       char buf2[sizeof(buf)];
-       memset(buf2, '.', sizeof(buf2)-1);
+    char buf2[sizeof(buf)];
+    memset(buf2, '.', sizeof(buf2)-1);
+    buf2[ sizeof(buf2)-1 ] = '\0';
 
-       CHECK_TRUE( memcmp(buf, buf2, sizeof(buf)) );
+    CHECK_TRUE(memcmp(buf, buf2, sizeof(buf)) == 0);
 }
 
 TEST(ObfuscatorTests, Test_2_Block)
 {
-       char buf[70];
-       memset(buf, 'A', sizeof(buf)-1);
-       buf[ sizeof(buf)-1 ] = '\0';
+    char buf[70];
+    memset(buf, 'A', sizeof(buf)-1);
+    buf[ sizeof(buf)-1 ] = '\0';
 
-       Obfuscator ob;
+    Obfuscator ob;
 
-       ob.push(0, 10);
-       ob.push(12, sizeof(buf)-13);
+    ob.push(0, 10);
+    ob.push(10, sizeof(buf)-10-1);
 
     ObfuscatorBlock b;
-    for ( bool more = ob.first(b); more == true; more = ob.next(b) )
-               memset(&buf[ b.offset ], '.', b.length);
+    for ( bool more = ob.first(b); more; more = ob.next(b) )
+        memset(&buf[ b.offset ], '.', b.length);
 
-       char buf2[sizeof(buf)];
-       memset(buf2, '.', sizeof(buf2)-1);
+    char buf2[sizeof(buf)];
+    memset(buf2, '.', sizeof(buf2)-1);
+    buf2[ sizeof(buf2)-1 ] = '\0';
 
-       CHECK_TRUE( memcmp(buf, buf2, sizeof(buf)) );
+    CHECK_TRUE(memcmp(buf, buf2, sizeof(buf)) == 0);
 }
 
 TEST(ObfuscatorTests, Test_3_Block)
 {
-       char buf[70];
-       memset(buf, 'A', sizeof(buf)-1);
-       buf[ sizeof(buf)-1 ] = '\0';
+    char buf[70];
+    memset(buf, 'A', sizeof(buf)-1);
+    buf[ sizeof(buf)-1 ] = '\0';
 
-       Obfuscator ob;
+    Obfuscator ob;
 
-       ob.push(0, 10);
-       ob.push(12, 10);
-       ob.push(23, 10);
+    ob.push(0, 10);
+    ob.push(10, 10);
+    ob.push(20, sizeof(buf)-20-1);
 
     ObfuscatorBlock b;
-    for ( bool more = ob.first(b); more == true; more = ob.next(b) )
-               memset(&buf[ b.offset ], '.', b.length);
+    for ( bool more = ob.first(b); more; more = ob.next(b) )
+        memset(&buf[ b.offset ], '.', b.length);
 
-       char buf2[sizeof(buf)];
-       memset(buf2, '.', sizeof(buf2)-1);
+    char buf2[sizeof(buf)];
+    memset(buf2, '.', sizeof(buf2)-1);
+    buf2[ sizeof(buf2)-1 ] = '\0';
 
-       CHECK_TRUE( memcmp(buf, buf2, sizeof(buf)) );
+    CHECK_TRUE(memcmp(buf, buf2, sizeof(buf)) == 0);
+}
+
+TEST(ObfuscatorTests, Test_3_Block_with_Gaps)
+{
+    char buf[70];
+    memset(buf, 'A', sizeof(buf)-1);
+    buf[ sizeof(buf)-1 ] = '\0';
+
+    Obfuscator ob;
+
+    ob.push(0, 10);                // 0-9 '..........'
+    ob.push(20, 10);               // 10-19 'AAAAAAAAAA' 20-29 '..........'
+    ob.push(40, sizeof(buf)-40-1); // 30-39 'AAAAAAAAAA' 40-68 '.............................' 69 '\0'
+
+    ObfuscatorBlock b;
+    for ( bool more = ob.first(b); more; more = ob.next(b) )
+        memset(&buf[ b.offset ], '.', b.length);
+
+    const char buf2[70] = "..........AAAAAAAAAA..........AAAAAAAAAA.............................";
+    CHECK_TRUE(memcmp(buf, buf2, sizeof(buf)) == 0);
 }
 
 TEST(ObfuscatorTests, EmptyListTest)
 {
-       Obfuscator ob;
+    Obfuscator ob;
     ObfuscatorBlock b;
-    CHECK_FALSE( ob.first(b) );
+    CHECK_FALSE(ob.first(b));
 }
 
 TEST(ObfuscatorTests, EmptyList2Test)
 {
-       Obfuscator ob;
+    Obfuscator ob;
     ObfuscatorBlock b;
-    CHECK_FALSE( ob.next(b) );
+    CHECK_FALSE(ob.next(b));
 }
 
 TEST(ObfuscatorTests, EmptyList3Test)
 {
-       Obfuscator ob;
-       ob.push(0, 69);
+    Obfuscator ob;
+    ob.push(0, 69);
 
     ObfuscatorBlock b;
-    CHECK_TRUE( ob.first(b) );
-    CHECK_FALSE( ob.next(b) );
-    CHECK_FALSE( ob.next(b) );
+    CHECK_TRUE(ob.first(b) );
+    CHECK_FALSE(ob.next(b) );
+    CHECK_FALSE(ob.next(b) );
 }
 
 TEST(ObfuscatorTests, NoExactMatch)
 {
-       Obfuscator ob;
-       ob.push(0, 1);
-       ob.push(0, 1);
-       ob.push(0, 1);
-       ob.push(0, 1);
-       ob.push(0, 1);
-       ob.push(0, 1);
-       ob.push(0, 1);
-       ob.push(0, 1);
+    Obfuscator ob;
+    ob.push(0, 1);
+    ob.push(0, 1);
+    ob.push(0, 1);
+    ob.push(0, 1);
+    ob.push(0, 1);
+    ob.push(0, 1);
+    ob.push(0, 1);
+    ob.push(0, 1);
 
     auto b = ob.begin();
-    CHECK_TRUE( ++b == ob.end() );
+    CHECK_TRUE(++b == ob.end());
 }
 
 TEST(ObfuscatorTests, UpdateExactMatch)
 {
-       Obfuscator ob;
-       ob.push(0, 1);
-       ob.push(0, 2);
-       ob.push(0, 3);
-       ob.push(0, 4);
-       ob.push(0, 5);
-       ob.push(0, 6);
-       ob.push(0, 7);
-       ob.push(0, 8);
+    Obfuscator ob;
+    ob.push(0, 1);
+    ob.push(0, 2);
+    ob.push(0, 3);
+    ob.push(0, 4);
+    ob.push(0, 5);
+    ob.push(0, 6);
+    ob.push(0, 7);
+    ob.push(0, 8);
 
     auto b = ob.begin();
-    CHECK_TRUE( ++b == ob.end() );
+    CHECK_TRUE(++b == ob.end());
 }
 
 //
@@ -154,7 +175,7 @@ TEST(ObfuscatorTests, UpdateExactMatch)
 //
 TEST(ObfuscatorTests, SortedElements)
 {
-       Obfuscator ob;
+    Obfuscator ob;
     ob.push(50,0);
     ob.push(100,0);
     ob.push(0,0);
@@ -162,14 +183,14 @@ TEST(ObfuscatorTests, SortedElements)
     uint32_t last = 0;
     for ( auto &b: ob )
     {
-        CHECK_TRUE( last <= b.offset );
+        CHECK_TRUE(last <= b.offset);
         last = b.offset;
     }
 }
 
 TEST(ObfuscatorTests, Overlaps)
 {
-       Obfuscator ob;
+    Obfuscator ob;
     ob.push(50,49);
     ob.push(100,1);
     ob.push(0,100);
@@ -177,12 +198,12 @@ TEST(ObfuscatorTests, Overlaps)
     uint32_t last = 0;
     for ( auto &b: ob )
     {
-        CHECK_TRUE( last <= b.offset );
+        CHECK_TRUE(last <= b.offset);
         last = b.offset;
     }
 }
 
-int main(int argc, char *argv[])
+int main(int argc, charargv[])
 {
     return CommandLineTestRunner::RunAllTests(argc, argv);
 }