Move EvalString tests to eval_env_test.cc
authorThiago Farina <tfarina@chromium.org>
Fri, 9 Sep 2011 02:51:53 +0000 (23:51 -0300)
committerThiago Farina <tfarina@chromium.org>
Fri, 9 Sep 2011 02:51:53 +0000 (23:51 -0300)
Signed-off-by: Thiago Farina <tfarina@chromium.org>
configure.py
src/eval_env_test.cc [new file with mode: 0644]
src/ninja_test.cc

index b680a8c4afcfe8a9ca53082847026ac69924feb3..8d9cacad751c57ca7334387310485892adc59bce 100755 (executable)
@@ -173,8 +173,8 @@ else:
 
 objs = []
 for name in ['build_test', 'build_log_test', 'disk_interface_test',
-             'graph_test', 'ninja_test', 'parsers_test', 'subprocess_test',
-             'util_test', 'clean_test', 'test']:
+             'eval_env_test', 'graph_test', 'ninja_test', 'parsers_test',
+             'subprocess_test', 'util_test', 'clean_test', 'test']:
     objs += cxx(name, variables=[('cflags', test_cflags)])
 
 if platform != 'mingw':
diff --git a/src/eval_env_test.cc b/src/eval_env_test.cc
new file mode 100644 (file)
index 0000000..4836e24
--- /dev/null
@@ -0,0 +1,101 @@
+// 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 <map>
+#include <string>
+
+#include "eval_env.h"
+
+namespace {
+
+struct TestEnv : public Env {
+  virtual string LookupVariable(const string& var) {
+    return vars[var];
+  }
+  map<string, string> vars;
+};
+
+TEST(EvalString, PlainText) {
+  EvalString str;
+  string err;
+  EXPECT_TRUE(str.Parse("plain text", &err));
+  EXPECT_EQ("", err);
+  EXPECT_EQ("plain text", str.Evaluate(NULL));
+}
+
+TEST(EvalString, OneVariable) {
+  EvalString str;
+  string err;
+  EXPECT_TRUE(str.Parse("hi $var", &err));
+  EXPECT_EQ("", err);
+  EXPECT_EQ("hi $var", str.unparsed());
+  TestEnv env;
+  EXPECT_EQ("hi ", str.Evaluate(&env));
+  env.vars["var"] = "there";
+  EXPECT_EQ("hi there", str.Evaluate(&env));
+}
+
+TEST(EvalString, OneVariableUpperCase) {
+  EvalString str;
+  string err;
+  EXPECT_TRUE(str.Parse("hi $VaR", &err));
+  EXPECT_EQ("", err);
+  EXPECT_EQ("hi $VaR", str.unparsed());
+  TestEnv env;
+  EXPECT_EQ("hi ", str.Evaluate(&env));
+  env.vars["VaR"] = "there";
+  EXPECT_EQ("hi there", str.Evaluate(&env));
+}
+
+TEST(EvalString, Error) {
+  EvalString str;
+  string err;
+  size_t err_index;
+  EXPECT_FALSE(str.Parse("bad $", &err, &err_index));
+  EXPECT_EQ("expected variable after $", err);
+  EXPECT_EQ(5u, err_index);
+}
+TEST(EvalString, CurlyError) {
+  EvalString str;
+  string err;
+  size_t err_index;
+  EXPECT_FALSE(str.Parse("bad ${bar", &err, &err_index));
+  EXPECT_EQ("expected closing curly after ${", err);
+  EXPECT_EQ(9u, err_index);
+}
+
+TEST(EvalString, Curlies) {
+  EvalString str;
+  string err;
+  EXPECT_TRUE(str.Parse("foo ${var}baz", &err));
+  EXPECT_EQ("", err);
+  TestEnv env;
+  EXPECT_EQ("foo baz", str.Evaluate(&env));
+  env.vars["var"] = "barbar";
+  EXPECT_EQ("foo barbarbaz", str.Evaluate(&env));
+}
+
+TEST(EvalString, Dollars) {
+  EvalString str;
+  string err;
+  EXPECT_TRUE(str.Parse("foo$$bar$bar", &err));
+  ASSERT_EQ("", err);
+  TestEnv env;
+  env.vars["bar"] = "baz";
+  EXPECT_EQ("foo$barbaz", str.Evaluate(&env));
+}
+
+}  // namespace
index c1999d90e15f397bc0acc9b2304137fa1ac627e3..7337606efceec4dc52fe8f86dfd202848745d9a7 100644 (file)
@@ -43,77 +43,6 @@ TEST(State, Basic) {
   EXPECT_FALSE(state.GetNode("out")->dirty());
 }
 
-struct TestEnv : public Env {
-  virtual string LookupVariable(const string& var) {
-    return vars[var];
-  }
-  map<string, string> vars;
-};
-TEST(EvalString, PlainText) {
-  EvalString str;
-  string err;
-  EXPECT_TRUE(str.Parse("plain text", &err));
-  EXPECT_EQ("", err);
-  EXPECT_EQ("plain text", str.Evaluate(NULL));
-}
-TEST(EvalString, OneVariable) {
-  EvalString str;
-  string err;
-  EXPECT_TRUE(str.Parse("hi $var", &err));
-  EXPECT_EQ("", err);
-  EXPECT_EQ("hi $var", str.unparsed());
-  TestEnv env;
-  EXPECT_EQ("hi ", str.Evaluate(&env));
-  env.vars["var"] = "there";
-  EXPECT_EQ("hi there", str.Evaluate(&env));
-}
-TEST(EvalString, OneVariableUpperCase) {
-  EvalString str;
-  string err;
-  EXPECT_TRUE(str.Parse("hi $VaR", &err));
-  EXPECT_EQ("", err);
-  EXPECT_EQ("hi $VaR", str.unparsed());
-  TestEnv env;
-  EXPECT_EQ("hi ", str.Evaluate(&env));
-  env.vars["VaR"] = "there";
-  EXPECT_EQ("hi there", str.Evaluate(&env));
-}
-TEST(EvalString, Error) {
-  EvalString str;
-  string err;
-  size_t err_index;
-  EXPECT_FALSE(str.Parse("bad $", &err, &err_index));
-  EXPECT_EQ("expected variable after $", err);
-  EXPECT_EQ(5u, err_index);
-}
-TEST(EvalString, CurlyError) {
-  EvalString str;
-  string err;
-  size_t err_index;
-  EXPECT_FALSE(str.Parse("bad ${bar", &err, &err_index));
-  EXPECT_EQ("expected closing curly after ${", err);
-  EXPECT_EQ(9u, err_index);
-}
-TEST(EvalString, Curlies) {
-  EvalString str;
-  string err;
-  EXPECT_TRUE(str.Parse("foo ${var}baz", &err));
-  EXPECT_EQ("", err);
-  TestEnv env;
-  EXPECT_EQ("foo baz", str.Evaluate(&env));
-  env.vars["var"] = "barbar";
-  EXPECT_EQ("foo barbarbaz", str.Evaluate(&env));
-}
-TEST(EvalString, Dollars) {
-  EvalString str;
-  string err;
-  EXPECT_TRUE(str.Parse("foo$$bar$bar", &err));
-  ASSERT_EQ("", err);
-  TestEnv env;
-  env.vars["bar"] = "baz";
-  EXPECT_EQ("foo$barbaz", str.Evaluate(&env));
-}
-
 struct StatTest : public StateTestWithBuiltinRules,
                   public DiskInterface {
   // DiskInterface implementation.
@@ -210,5 +139,3 @@ TEST_F(StatTest, Middle) {
   ASSERT_TRUE(GetNode("mid")->dirty_);
   ASSERT_TRUE(GetNode("out")->dirty_);
 }
-
-