Browse Source

Unit tests for cgpu_match

Luke Dashjr 12 years ago
parent
commit
6e1a33a7c7
1 changed files with 41 additions and 0 deletions
  1. 41 0
      miner.c

+ 41 - 0
miner.c

@@ -573,6 +573,46 @@ invsyntax:
 	return false;
 }
 
+#define TEST_CGPU_MATCH(pattern)  \
+	if (!cgpu_match(pattern, &cgpu))  \
+		applog(LOG_ERR, "%s: Pattern \"%s\" should have matched!", __func__, pattern);  \
+// END TEST_CGPU_MATCH
+#define TEST_CGPU_NOMATCH(pattern)  \
+	if (cgpu_match(pattern, &cgpu))  \
+		applog(LOG_ERR, "%s: Pattern \"%s\" should NOT have matched!", __func__, pattern);  \
+// END TEST_CGPU_MATCH
+static __maybe_unused
+void test_cgpu_match()
+{
+	struct device_drv drv = {
+		.dname = "test",
+		.name = "TST",
+	};
+	struct cgpu_info cgpu = {
+		.drv = &drv,
+		.device = &cgpu,
+		.proc_repr = "TST 0a",
+	};
+	struct cgpu_info *devices_list[1] = {&cgpu,};
+	devices = devices_list;
+	total_devices = 1;
+	TEST_CGPU_MATCH("all")
+	TEST_CGPU_MATCH("d0")
+	TEST_CGPU_NOMATCH("d1")
+	TEST_CGPU_MATCH("0")
+	TEST_CGPU_NOMATCH("1")
+	TEST_CGPU_MATCH("TST")
+	TEST_CGPU_NOMATCH("TSF")
+	TEST_CGPU_NOMATCH("TS")
+	TEST_CGPU_NOMATCH("TSTF")
+	TEST_CGPU_MATCH("TST0")
+	TEST_CGPU_MATCH("TST 0")
+	TEST_CGPU_NOMATCH("TST1")
+	TEST_CGPU_MATCH("TST0a")
+	TEST_CGPU_NOMATCH("TST0b")
+	TEST_CGPU_NOMATCH("TST0aa")
+}
+
 static
 int cgpu_search(const char * const pattern, const int first)
 {
@@ -10702,6 +10742,7 @@ int main(int argc, char *argv[])
 	}
 	
 	if (opt_unittest) {
+		test_cgpu_match();
 		test_intrange();
 		test_decimal_width();
 	}