Add support for running 181.mcf benchmark

Also adding a blank mcf.out as benchmark expects it to exists

Change-Id: I97e4a5fd97c7224a615f78214dd808fbc0ab6b71
diff --git a/181.mcf/BUILD.gn b/181.mcf/BUILD.gn
index 9f04590..10de6eb 100644
--- a/181.mcf/BUILD.gn
+++ b/181.mcf/BUILD.gn
@@ -4,6 +4,7 @@
 
 inputs = [
   "data/ref/input/inp.in",
+  "data/ref/input/mcf.out",
 ]
 
 executable("181.mcf") {
diff --git a/benchmarks/main.cc b/benchmarks/main.cc
index fbac063..96b1c4a 100644
--- a/benchmarks/main.cc
+++ b/benchmarks/main.cc
@@ -33,6 +33,11 @@
   EquakeFixture() : SpecFixture("183.equake"){};
 };
 
+class McfFixture : public SpecFixture {
+ protected:
+  McfFixture() : SpecFixture("181.mcf"){};
+};
+
 }  // namespace
 
 std::string executableDir;
@@ -98,6 +103,17 @@
   }
 }
 
+BENCHMARK_F(McfFixture, 181_Mcf)(benchmark::State& st) {
+  while (st.KeepRunning()) {
+    const char* args[] = {"inp.in"};
+    if (RunSpec(args, 1, NULL) != 0) {
+      st.SkipWithError(
+          (std::string("Error while running benchmark: ") + strerror(errno))
+              .c_str());
+    }
+  }
+}
+
 int main(int argc, char* argv[]) {
   ::benchmark::Initialize(&argc, argv);
   google::InitGoogleLogging(argv[0]);
diff --git a/patch.sh b/patch.sh
index 488a775..1e3bc0f 100755
--- a/patch.sh
+++ b/patch.sh
@@ -72,4 +72,5 @@
 copynpatch "$1/benchspec/CINT2000" ${CINT_BLIST[*]}
 copynpatch "$1/benchspec/CFP2000" ${CFP_BLIST[*]}
 
-mv ${SCRIPT_DIR}/177.mesa/data/ref/input/mesa.in ${SCRIPT_DIR}/177.mesa/data/ref/input/mesa.mesh
+mv "${SCRIPT_DIR}/177.mesa/data/ref/input/mesa.in" "${SCRIPT_DIR}/177.mesa/data/ref/input/mesa.mesh"
+touch "${SCRIPT_DIR}/181.mcf/data/ref/input/mcf.out"