classifier: Add tests for classifier_count(), classifier_count_exact().
authorBen Pfaff <blp@nicira.com>
Wed, 4 Mar 2009 20:32:19 +0000 (12:32 -0800)
committerBen Pfaff <blp@nicira.com>
Wed, 4 Mar 2009 21:29:05 +0000 (13:29 -0800)
tests/test-classifier.c

index 20fd7c23edb1cef4fb7f23d42cd43e5b941a44b2..869cfd9847ce3e24734ca19faa4805bee2691b0f 100644 (file)
@@ -90,6 +90,19 @@ tcls_destroy(struct tcls *tcls)
     }
 }
 
+static int
+tcls_count_exact(const struct tcls *tcls)
+{
+    int n_exact;
+    size_t i;
+
+    n_exact = 0;
+    for (i = 0; i < tcls->n_rules; i++) {
+        n_exact += tcls->rules[i]->cls_rule.wc.wildcards == 0;
+    }
+    return n_exact;
+}
+
 static bool
 tcls_is_empty(const struct tcls *tcls)
 {
@@ -318,6 +331,8 @@ compare_classifiers(struct classifier *cls, struct tcls *tcls)
 {
     unsigned int i;
 
+    assert(classifier_count(cls) == tcls->n_rules);
+    assert(classifier_count_exact(cls) == tcls_count_exact(tcls));
     for (i = 0; i < N_FLOW_VALUES; i++) {
         struct cls_rule *cr0, *cr1;
         flow_t flow;