]> https://gitweb.dealii.org/ - dealii.git/commitdiff
replace call to md5sum in tests 3953/head
authorTimo Heister <timo.heister@gmail.com>
Thu, 9 Feb 2017 14:03:37 +0000 (09:03 -0500)
committerTimo Heister <timo.heister@gmail.com>
Thu, 9 Feb 2017 16:39:09 +0000 (11:39 -0500)
tests/mpi/no_flux_constraints_02.cc
tests/mpi/no_flux_constraints_02.with_trilinos=true.mpirun=1.output
tests/mpi/no_flux_constraints_02.with_trilinos=true.mpirun=9.output
tests/mpi/no_flux_constraints_03.cc
tests/mpi/no_flux_constraints_03.with_trilinos=true.mpirun=1.output
tests/mpi/no_flux_constraints_03.with_trilinos=true.mpirun=9.output
tests/tests.h

index c7de100bbbfe23d1e73ceb131d731ce13d590bf8..c57be6bef66a14e54acd67a70cc24d06a3724156 100644 (file)
@@ -138,20 +138,15 @@ void test()
       //sort and merge the constraint matrices on proc 0, generate a checksum
       //and output that into the deallog
       system((std::string("cat ") + base+"cm_?.dot|sort -n|uniq >" + base+"cm").c_str());
-      system((std::string("md5sum ") + base + "cm >" + base + "cm.check").c_str());
       {
-        std::ifstream file((base+"cm.check").c_str());
-        std::string str;
-        while (!file.eof())
-          {
-            std::getline(file, str);
-            deallog << str << std::endl;
-          }
+        std::ifstream file((base+"cm").c_str());
+        std::stringstream ss;
+        ss << file.rdbuf();
+        std::string str = ss.str();
+        deallog << "checksum: " << checksum(str.begin(), str.end()) << std::endl;
       }
-      // delete the files created
-      // by processor 0
+      // delete the file created by processor 0
       std::remove ((base + "cm").c_str());
-      std::remove ((base + "cm.check").c_str());
     }
 
   // remove tmp files again. wait
index 6e8041f25d61364046ee31ef4cb276af69f7b52b..f10f0a00a81e3d69ba3a8bc847e8ceace8db77ed 100644 (file)
@@ -2,7 +2,6 @@
 DEAL:0:3d::# flagged cells = 224
 DEAL:0:3d::#cells = 7712
 DEAL:0:3d::#dofs = 27018
-DEAL:0:3d::9f3296fa8b319b40f49d8cc9de4efa48  cm
-DEAL:0:3d::
+DEAL:0:3d::checksum: 1517649227
 DEAL:0:3d::#constraints on 0: 2088
 DEAL:0:3d::OK
index 8860a413d2e30e0a27afdcffe82058f26dac580f..70ecffd1c8e5e58d77758461a47e7c02e187bf5e 100644 (file)
@@ -2,8 +2,7 @@
 DEAL:0:3d::# flagged cells = 224
 DEAL:0:3d::#cells = 7712
 DEAL:0:3d::#dofs = 27018
-DEAL:0:3d::9f3296fa8b319b40f49d8cc9de4efa48  cm
-DEAL:0:3d::
+DEAL:0:3d::checksum: 1517649227
 DEAL:0:3d::#constraints on 0: 237
 DEAL:0:3d::#constraints on 1: 786
 DEAL:0:3d::#constraints on 2: 909
index 91c8c28200d2d27c26677ae0be23f8a348f8e497..36267fc374306a62e332fda8deec68b410c06c6e 100644 (file)
@@ -108,24 +108,19 @@ void test()
   sleep(1);
   if (myid==0)
     {
+
       //sort and merge the constraint matrices on proc 0, generate a checksum
       //and output that into the deallog
       system((std::string("cat ") + base + "cm_*.dot | sort -n | uniq > " + base + "cm").c_str());
-      system((std::string("md5sum ") + base + "cm > " + base + "cm.check").c_str());
       {
-        std::ifstream file((base+"cm.check").c_str());
-        std::string str;
-        while (!file.eof())
-          {
-            std::getline(file, str);
-            deallog << str << std::endl;
-          }
+        std::ifstream file((base+"cm").c_str());
+        std::stringstream ss;
+        ss << file.rdbuf();
+        std::string str = ss.str();
+        deallog << "checksum: " << checksum(str.begin(), str.end()) << std::endl;
       }
-
-      // delete the files created
-      // by processor 0
+      // delete the file created by processor 0
       std::remove ((base + "cm").c_str());
-      std::remove ((base + "cm.check").c_str());
     }
 
   // remove tmp files again. wait
index ebf614869b2d69a764facf8dab94556d3af8e695..7128e3aa516da4d4854811c3401c10baa1eea64e 100644 (file)
@@ -1,7 +1,6 @@
 
 DEAL:0:3d::#cells = 568
 DEAL:0:3d::#dofs = 2481
-DEAL:0:3d::17a5cf8e1f66b693f8b54bf284cab4ac  cm
-DEAL:0:3d::
+DEAL:0:3d::checksum: 631047589
 DEAL:0:3d::#constraints on 0: 702
 DEAL:0:3d::OK
index c1b1c4aee0eeeffa35f53bac76f96bf776e886c3..b51d3aabf96b155646b5b22437c96612f33cddf6 100644 (file)
@@ -1,8 +1,7 @@
 
 DEAL:0:3d::#cells = 568
 DEAL:0:3d::#dofs = 2481
-DEAL:0:3d::17a5cf8e1f66b693f8b54bf284cab4ac  cm
-DEAL:0:3d::
+DEAL:0:3d::checksum: 631047589
 DEAL:0:3d::#constraints on 0: 198
 DEAL:0:3d::#constraints on 1: 221
 DEAL:0:3d::#constraints on 2: 266
index 5886c1d0d68a0aa38a6668dc43a085014770b35d..810e51e7907c817b1adb4b272396aeb6db7da854 100644 (file)
@@ -182,6 +182,30 @@ void sort_file_contents (const std::string &filename)
 }
 
 
+/*
+ * simple ADLER32 checksum for a range of chars
+ */
+template <class IT>
+unsigned int checksum(const IT &begin, const IT &end)
+{
+  AssertThrow(sizeof(unsigned int)==4, ExcInternalError());
+  AssertThrow(sizeof(*begin)==1, ExcInternalError());
+
+  unsigned int a = 1;
+  unsigned int b = 0;
+
+  IT it = begin;
+
+  while (it != end)
+    {
+      a = (a + (unsigned char)*it) % 65521;
+      b = (a + b) % 65521;
+      ++it;
+    }
+
+  return (b << 16) | a;
+}
+
 
 
 /*

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.