summaryrefslogtreecommitdiffstats
path: root/src/state_test.cc
diff options
context:
space:
mode:
authorThiago Farina <tfarina@chromium.org>2011-09-11 22:29:38 (GMT)
committerThiago Farina <tfarina@chromium.org>2011-09-11 22:29:38 (GMT)
commitb39616b9211f035e29aa00b28ffba5ee4278ebc1 (patch)
treeffc63e87e3babbfb951db33120f57bedb3da3f5b /src/state_test.cc
parentf8c98ed3da50337b9d671ea5ef3b297030ca7973 (diff)
downloadNinja-b39616b9211f035e29aa00b28ffba5ee4278ebc1.zip
Ninja-b39616b9211f035e29aa00b28ffba5ee4278ebc1.tar.gz
Ninja-b39616b9211f035e29aa00b28ffba5ee4278ebc1.tar.bz2
Split ninja_test.cc into state_test.cc and disk_interface_test.cc
Signed-off-by: Thiago Farina <tfarina@chromium.org>
Diffstat (limited to 'src/state_test.cc')
-rw-r--r--src/state_test.cc41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/state_test.cc b/src/state_test.cc
new file mode 100644
index 0000000..83fd0fd
--- /dev/null
+++ b/src/state_test.cc
@@ -0,0 +1,41 @@
+// Copyright 2011 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include <gtest/gtest.h>
+
+#include "graph.h"
+#include "state.h"
+
+namespace {
+
+TEST(State, Basic) {
+ State state;
+ Rule* rule = new Rule("cat");
+ string err;
+ EXPECT_TRUE(rule->ParseCommand("cat $in > $out", &err));
+ ASSERT_EQ("", err);
+ state.AddRule(rule);
+ Edge* edge = state.AddEdge(rule);
+ state.AddIn(edge, "in1");
+ state.AddIn(edge, "in2");
+ state.AddOut(edge, "out");
+
+ EXPECT_EQ("cat in1 in2 > out", edge->EvaluateCommand());
+
+ EXPECT_FALSE(state.GetNode("in1")->dirty());
+ EXPECT_FALSE(state.GetNode("in2")->dirty());
+ EXPECT_FALSE(state.GetNode("out")->dirty());
+}
+
+} // namespace