[llvm-commits] CVS: llvm-test/SingleSource/UnitTests/Integer/APInt/gptest.cpp

Reid Spencer reid at x10sys.com
Sat Feb 24 12:21:03 PST 2007



Changes in directory llvm-test/SingleSource/UnitTests/Integer/APInt:

gptest.cpp updated: 1.4 -> 1.5
---
Log message:

Consolidate reporting.
Consolidate comparison tests.
Fix output for remainder.


---
Diffs of the changes:  (+24 -56)

 gptest.cpp |   80 ++++++++++++++++++-------------------------------------------
 1 files changed, 24 insertions(+), 56 deletions(-)


Index: llvm-test/SingleSource/UnitTests/Integer/APInt/gptest.cpp
diff -u llvm-test/SingleSource/UnitTests/Integer/APInt/gptest.cpp:1.4 llvm-test/SingleSource/UnitTests/Integer/APInt/gptest.cpp:1.5
--- llvm-test/SingleSource/UnitTests/Integer/APInt/gptest.cpp:1.4	Sat Feb 24 03:51:47 2007
+++ llvm-test/SingleSource/UnitTests/Integer/APInt/gptest.cpp	Sat Feb 24 14:20:46 2007
@@ -78,12 +78,6 @@
   return getResult(cmd);
 }
 
-
-void report(const std::string& cmd,
-            const std::string& result, const std::string& apresult) {
-  printf("%s = %s (not %s)\n", cmd.c_str(), result.c_str(), apresult.c_str());
-}
-
 void report(const APInt &v1, const APInt &v2, const std::string& op, 
             const std::string& result, const std::string& apresult) {
   print(v1, false, false);
@@ -93,14 +87,6 @@
   fflush(stdout);
 }
 
-void report(const APInt &v1, const std::string &op, 
-            const std::string& result, const std::string& apresult) {
-  printf(op.c_str());
-  print(v1, false, false);
-  printf(" = %s (not %s)\n", result.c_str(), apresult.c_str());
-  fflush(stdout);
-}
-
 void doMultiply(const APInt &v1, const APInt &v2) {
   std::string result = getBinop(v1, "*", v2);
   APInt r = v1 * v2;
@@ -126,7 +112,7 @@
   APInt r = APIntOps::urem(v1, v2);
   std::string apresult = r.toString(10, false);
   if (result != apresult)
-    report(v1,v2," % ", result,apresult);
+    report(v1,v2," %% ", result,apresult);
 }
 
 void doAdd(const APInt &v1, const APInt &v2) {
@@ -156,7 +142,7 @@
   APInt r = v1 & v2;
   std::string apresult = r.toString(10, false);
   if (result != apresult)
-    report(cmd, result,apresult);
+    report(v1, v2, " and ", result,apresult);
 }
 
 void doOr(const APInt &v1, const APInt &v2) {
@@ -170,7 +156,7 @@
   APInt r = v1 | v2;
   std::string apresult = r.toString(10, false);
   if (result != apresult)
-    report(cmd, result,apresult);
+    report(v1, v2, " or ", result,apresult);
 }
 
 void doXor(const APInt &v1, const APInt &v2) {
@@ -184,7 +170,7 @@
   APInt r = v1 ^ v2;
   std::string apresult = r.toString(10, false);
   if (result != apresult)
-    report(cmd, result,apresult);
+    report(v1, v2, " xor ", result,apresult);
 }
 
 void doComplement(const APInt &v1) {
@@ -195,8 +181,12 @@
   std::string result = getResult(cmd);
   APInt r = ~v1;
   std::string apresult = r.toString(10, false);
-  if (result != apresult)
-    report(v1," ~ ", result,apresult);
+  if (result != apresult) {
+    printf("~ ");
+    print(v1, false, false);
+    printf(" = %s (not %s)\n", result.c_str(), apresult.c_str());
+    fflush(stdout);
+  }
 }
 
 void doBitTest(const APInt &v1) {
@@ -241,46 +231,19 @@
     apresult = R1.toString(10,false);
     if (gpresult != apresult) {
       print(v1, false, false);
-      printf(" s>> %d = %s (not %s)\n", i, gpresult.c_str(), apresult.c_str());
+      printf(" u>> %d = %s (not %s)\n", i, gpresult.c_str(), apresult.c_str());
       fflush(stdout);
     }
   }
 }
 
-bool getCompare(const APInt &v1, const std::string &op, 
-                const APInt &v2, bool wantSigned = false) {
-
-  std::string cmd = v1.toString(10, wantSigned) + op + 
-                    v2.toString(10, wantSigned) + '\n';
-  std::string result = getResult(cmd);
-  return bool(atoi(result.c_str()));
-}
-
-void doComparisons(const APInt &v1, const APInt &v2) {
-  bool result = getCompare(v1, "==", v2);
-  bool apresult = v1 == v2;
-  if (result != apresult)
-    report(v1,v2," == ", (result?"true":"false"), (apresult?"true":"false"));
-  result = getCompare(v1, "!=", v2);
-  apresult = v1 != v2;
-  if (result != apresult)
-    report(v1,v2," != ", (result?"true":"false"), (apresult?"true":"false"));
-  result = getCompare(v1, "<", v2);
-  apresult = v1.ult(v2);
-  if (result != apresult)
-    report(v1,v2," < ", (result?"true":"false"), (apresult?"true":"false"));
-  result = getCompare(v1, "<=", v2);
-  apresult = v1.ule(v2);
-  if (result != apresult)
-    report(v1,v2," <= ", (result?"true":"false"), (apresult?"true":"false"));
-  result = getCompare(v1, ">", v2);
-  apresult = v1.ugt(v2);
-  if (result != apresult)
-    report(v1,v2," > ", (result?"true":"false"), (apresult?"true":"false"));
-  result = getCompare(v1, ">=", v2);
-  apresult = v1.uge(v2);
-  if (result != apresult)
-    report(v1,v2," >= ", (result?"true":"false"), (apresult?"true":"false"));
+void doCompare(const APInt &v1, const std::string &op, 
+                const APInt &v2, bool apresult) {
+  std::string cmd = v1.toString(10, false) + op + 
+                    v2.toString(10, false) + '\n';
+  bool gpresult = atoi(getResult(cmd).c_str());
+  if (gpresult != apresult)
+    report(v1,v2, op, (apresult?"true":"false"), (apresult?"true":"false"));
 }
 
 void test_binops(const APInt &v1, const APInt &v2) {
@@ -292,7 +255,12 @@
   doAnd(v1,v2);
   doOr(v1,v2);
   doXor(v1,v2);
-  doComparisons(v1, v2);
+  doCompare(v1, "==", v2, v1 == v2);
+  doCompare(v1, "!=", v2, v1 != v2);
+  doCompare(v1, "< ", v2, v1.ult(v2));
+  doCompare(v1, "<=", v2, v1.ule(v2));
+  doCompare(v1, "> ", v2, v1.ugt(v2));
+  doCompare(v1, ">=", v2, v1.uge(v2));
 }
 
 void Shutdown() {






More information about the llvm-commits mailing list