test: Add orc_test_compare_output_backup()
authorDavid Schleef <ds@schleef.org>
Thu, 9 Jul 2009 19:08:48 +0000 (12:08 -0700)
committerDavid Schleef <ds@schleef.org>
Thu, 9 Jul 2009 19:08:48 +0000 (12:08 -0700)
orc-test/orctest.c
orc-test/orctest.h

index 53cfd9b..11b9bc3 100644 (file)
@@ -525,9 +525,25 @@ check_bounds (void *ptr, int n, int size)
   return TRUE;
 }
 
+static OrcTestResult orc_test_compare_output_full (OrcProgram *program,
+    int backup);
+
 OrcTestResult
 orc_test_compare_output (OrcProgram *program)
 {
+  return orc_test_compare_output_full (program, 0);
+}
+
+OrcTestResult
+orc_test_compare_output_backup (OrcProgram *program)
+{
+  return orc_test_compare_output_full (program, 1);
+}
+
+
+OrcTestResult
+orc_test_compare_output_full (OrcProgram *program, int backup)
+{
   OrcExecutor *ex;
   int n = 64 + (rand()&0xf);
   void *dest_exec[4] = { NULL, NULL, NULL, NULL };
@@ -542,9 +558,11 @@ orc_test_compare_output (OrcProgram *program)
   int acc_exec = 0, acc_emul = 0;
   int ret = ORC_TEST_OK;
 
-  result = orc_program_compile (program);
-  if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL(result)) {
-    return ORC_TEST_INDETERMINATE;
+  if (!backup) {
+    result = orc_program_compile (program);
+    if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL(result)) {
+      return ORC_TEST_INDETERMINATE;
+    }
   }
 
   ex = orc_executor_new (program);
index 7d484f2..0afb516 100644 (file)
@@ -19,6 +19,7 @@ OrcTestResult orc_test_gcc_compile_neon (OrcProgram *p);
 OrcTestResult orc_test_gcc_compile_c64x (OrcProgram *p);
 void orc_test_random_bits (void *data, int n_bytes);
 OrcTestResult orc_test_compare_output (OrcProgram *program);
+OrcTestResult orc_test_compare_output_backup (OrcProgram *program);
 
 OrcProgram *orc_test_get_program_for_opcode (OrcStaticOpcode *opcode);
 OrcProgram *orc_test_get_program_for_opcode_const (OrcStaticOpcode *opcode);