summaryrefslogtreecommitdiff
path: root/Source/ThirdParty/ANGLE/src/tests/preprocessor_tests/token_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/ThirdParty/ANGLE/src/tests/preprocessor_tests/token_test.cpp')
-rw-r--r--Source/ThirdParty/ANGLE/src/tests/preprocessor_tests/token_test.cpp90
1 files changed, 90 insertions, 0 deletions
diff --git a/Source/ThirdParty/ANGLE/src/tests/preprocessor_tests/token_test.cpp b/Source/ThirdParty/ANGLE/src/tests/preprocessor_tests/token_test.cpp
new file mode 100644
index 000000000..106647c8e
--- /dev/null
+++ b/Source/ThirdParty/ANGLE/src/tests/preprocessor_tests/token_test.cpp
@@ -0,0 +1,90 @@
+//
+// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+#include "gtest/gtest.h"
+
+#include "compiler/preprocessor/Token.h"
+
+TEST(TokenTest, DefaultConstructor)
+{
+ pp::Token token;
+ EXPECT_EQ(0, token.type);
+ EXPECT_EQ(0u, token.flags);
+ EXPECT_EQ(0, token.location.line);
+ EXPECT_EQ(0, token.location.file);
+ EXPECT_EQ("", token.text);
+}
+
+TEST(TokenTest, Assignment)
+{
+ pp::Token token;
+ token.type = 1;
+ token.flags = 1;
+ token.location.line = 1;
+ token.location.file = 1;
+ token.text.assign("foo");
+
+ token = pp::Token();
+ EXPECT_EQ(0, token.type);
+ EXPECT_EQ(0u, token.flags);
+ EXPECT_EQ(0, token.location.line);
+ EXPECT_EQ(0, token.location.file);
+ EXPECT_EQ("", token.text);
+}
+
+TEST(TokenTest, Equals)
+{
+ pp::Token token;
+ EXPECT_TRUE(token.equals(pp::Token()));
+
+ token.type = 1;
+ EXPECT_FALSE(token.equals(pp::Token()));
+ token.type = 0;
+
+ token.flags = 1;
+ EXPECT_FALSE(token.equals(pp::Token()));
+ token.flags = 0;
+
+ token.location.line = 1;
+ EXPECT_FALSE(token.equals(pp::Token()));
+ token.location.line = 0;
+
+ token.location.file = 1;
+ EXPECT_FALSE(token.equals(pp::Token()));
+ token.location.file = 0;
+
+ token.text.assign("foo");
+ EXPECT_FALSE(token.equals(pp::Token()));
+ token.text.clear();
+
+ EXPECT_TRUE(token.equals(pp::Token()));
+}
+
+TEST(TokenTest, HasLeadingSpace)
+{
+ pp::Token token;
+ EXPECT_FALSE(token.hasLeadingSpace());
+ token.setHasLeadingSpace(true);
+ EXPECT_TRUE(token.hasLeadingSpace());
+ token.setHasLeadingSpace(false);
+ EXPECT_FALSE(token.hasLeadingSpace());
+}
+
+TEST(TokenTest, Write)
+{
+ pp::Token token;
+ token.text.assign("foo");
+ std::stringstream out1;
+ out1 << token;
+ EXPECT_TRUE(out1.good());
+ EXPECT_EQ("foo", out1.str());
+
+ token.setHasLeadingSpace(true);
+ std::stringstream out2;
+ out2 << token;
+ EXPECT_TRUE(out2.good());
+ EXPECT_EQ(" foo", out2.str());
+}