diff options
Diffstat (limited to 'third_party/nix/src/tests/value-to-json.cc')
-rw-r--r-- | third_party/nix/src/tests/value-to-json.cc | 257 |
1 files changed, 0 insertions, 257 deletions
diff --git a/third_party/nix/src/tests/value-to-json.cc b/third_party/nix/src/tests/value-to-json.cc deleted file mode 100644 index 45427425306f..000000000000 --- a/third_party/nix/src/tests/value-to-json.cc +++ /dev/null @@ -1,257 +0,0 @@ -#include "libexpr/value-to-json.hh" - -#include <set> -#include <sstream> - -#include <gtest/gtest.h> - -#include "libexpr/value-to-xml.hh" -#include "libexpr/value.hh" -#include "libstore/store-api.hh" -#include "tests/dummy-store.hh" - -class ValueTest : public ::testing::Test { - protected: - static void SetUpTestCase() { nix::expr::InitGC(); } - - static void TearDownTestCase() {} -}; - -class JSONValueTest : public ValueTest {}; -class XMLValueTest : public ValueTest {}; - -namespace nix { - -using nix::tests::DummyStore; - -TEST_F(JSONValueTest, null) { - std::stringstream ss; - Value v; - PathSet ps; - std::shared_ptr<Store> store = std::make_shared<DummyStore>(); - EvalState s({}, ref<Store>(store)); - - mkNull(v); - printValueAsJSON(s, true, v, ss, ps); - ASSERT_EQ(ss.str(), "null"); -} - -TEST_F(JSONValueTest, BoolFalse) { - std::stringstream ss; - auto store = std::make_shared<DummyStore>(); - EvalState s({"."}, ref<Store>(store)); - Value v; - PathSet ps; - - mkBool(v, false); - printValueAsJSON(s, true, v, ss, ps); - ASSERT_EQ(ss.str(), "false"); -} - -TEST_F(JSONValueTest, BoolTrue) { - std::stringstream ss; - auto store = std::make_shared<DummyStore>(); - EvalState s({"."}, ref<Store>(store)); - Value v; - PathSet ps; - - mkBool(v, true); - printValueAsJSON(s, true, v, ss, ps); - ASSERT_EQ(ss.str(), "true"); -} - -TEST_F(JSONValueTest, IntPositive) { - std::stringstream ss; - auto store = std::make_shared<DummyStore>(); - EvalState s({"."}, ref<Store>(store)); - Value v; - PathSet ps; - - mkInt(v, 100); - printValueAsJSON(s, true, v, ss, ps); - ASSERT_EQ(ss.str(), "100"); -} - -TEST_F(JSONValueTest, IntNegative) { - std::stringstream ss; - auto store = std::make_shared<DummyStore>(); - EvalState s({"."}, ref<Store>(store)); - Value v; - PathSet ps; - - mkInt(v, -100); - printValueAsJSON(s, true, v, ss, ps); - ASSERT_EQ(ss.str(), "-100"); -} - -TEST_F(JSONValueTest, String) { - std::stringstream ss; - auto store = std::make_shared<DummyStore>(); - EvalState s({"."}, ref<Store>(store)); - Value v; - PathSet ps; - - mkString(v, "test"); - printValueAsJSON(s, true, v, ss, ps); - ASSERT_EQ(ss.str(), "\"test\""); -} - -TEST_F(JSONValueTest, StringQuotes) { - std::stringstream ss; - auto store = std::make_shared<DummyStore>(); - EvalState s({"."}, ref<Store>(store)); - Value v; - PathSet ps; - - mkString(v, "test\""); - printValueAsJSON(s, true, v, ss, ps); - ASSERT_EQ(ss.str(), "\"test\\\"\""); -} - -TEST_F(JSONValueTest, Path) { - std::stringstream ss; - auto store = std::make_shared<DummyStore>(); - EvalState s({"."}, ref<Store>(store)); - Value v; - PathSet ps; - - mkPathNoCopy(v, "/exists-for-tests"); - printValueAsJSON(s, true, v, ss, ps); - ASSERT_EQ(ss.str(), "\"/nix/store/g1w7hy3qg1w7hy3qg1w7hy3qg1w7hy3q-x\""); -} - -TEST_F(JSONValueTest, PathNoCopy) { - std::stringstream ss; - auto store = std::make_shared<DummyStore>(); - EvalState s({"."}, ref<Store>(store)); - Value v; - PathSet ps; - - mkPathNoCopy(v, "/exists-for-tests"); - printValueAsJSON(s, true, v, ss, ps); - ASSERT_EQ(ss.str(), "\"/nix/store/g1w7hy3qg1w7hy3qg1w7hy3qg1w7hy3q-x\""); -} - -/* - * Value to XMl tests - */ - -#define XML(v) \ - ("<?xml version='1.0' encoding='utf-8'?>\n<expr>\n" v "\n</expr>\n") - -TEST_F(XMLValueTest, null) { - std::stringstream ss; - Value v; - PathSet ps; - auto store = std::make_shared<DummyStore>(); - EvalState s({}, ref<Store>(store)); - - mkNull(v); - printValueAsXML(s, true, true, v, ss, ps); - ASSERT_EQ(ss.str(), XML(" <null />")); -} - -TEST_F(XMLValueTest, BoolFalse) { - std::stringstream ss; - auto store = std::make_shared<DummyStore>(); - EvalState s({"."}, ref<Store>(store)); - Value v; - PathSet ps; - - mkBool(v, false); - printValueAsXML(s, true, true, v, ss, ps); - ASSERT_EQ(ss.str(), XML(" <bool value=\"false\" />")); -} - -TEST_F(XMLValueTest, BoolTrue) { - std::stringstream ss; - auto store = std::make_shared<DummyStore>(); - EvalState s({"."}, ref<Store>(store)); - Value v; - PathSet ps; - - mkBool(v, true); - printValueAsXML(s, true, true, v, ss, ps); - ASSERT_EQ(ss.str(), XML(" <bool value=\"true\" />")); -} - -TEST_F(XMLValueTest, IntPositive) { - std::stringstream ss; - auto store = std::make_shared<DummyStore>(); - EvalState s({"."}, ref<Store>(store)); - Value v; - PathSet ps; - - mkInt(v, 100); - printValueAsXML(s, true, true, v, ss, ps); - ASSERT_EQ(ss.str(), XML(" <int value=\"100\" />")); -} - -TEST_F(XMLValueTest, IntNegative) { - std::stringstream ss; - auto store = std::make_shared<DummyStore>(); - EvalState s({"."}, ref<Store>(store)); - Value v; - PathSet ps; - - mkInt(v, -100); - printValueAsXML(s, true, true, v, ss, ps); - ASSERT_EQ(ss.str(), XML(" <int value=\"-100\" />")); -} - -TEST_F(XMLValueTest, String) { - std::stringstream ss; - auto store = std::make_shared<DummyStore>(); - EvalState s({"."}, ref<Store>(store)); - Value v; - PathSet ps; - - mkString(v, "test-value"); - printValueAsXML(s, true, true, v, ss, ps); - ASSERT_EQ(ss.str(), XML(" <string value=\"test-value\" />")); -} - -TEST_F(XMLValueTest, StringQuotes) { - std::stringstream ss; - auto store = std::make_shared<DummyStore>(); - EvalState s({"."}, ref<Store>(store)); - Value v; - PathSet ps; - - mkString(v, "test-value\""); - printValueAsXML(s, true, true, v, ss, ps); - ASSERT_EQ(ss.str(), XML(" <string value=\"test-value"\" />")); -} - -/* - * FIXME: This function returns the original input path while the JSON version - * of the same actually touches the store to create a /nix/store path. - */ -TEST_F(XMLValueTest, Path) { - std::stringstream ss; - auto store = std::make_shared<DummyStore>(); - EvalState s({"."}, ref<Store>(store)); - Value v; - PathSet ps; - - mkPath(v, "some-path"); - printValueAsXML(s, true, true, v, ss, ps); - ASSERT_EQ(ss.str(), XML(" <path value=\"some-path\" />")); -} - -/* - * FIXME: This function returns the original input path while the JSON version - * of the same actually touches the store to create a /nix/store path. - */ -TEST_F(XMLValueTest, PathNoCopy) { - std::stringstream ss; - auto store = std::make_shared<DummyStore>(); - EvalState s({"."}, ref<Store>(store)); - Value v; - PathSet ps; - - mkPathNoCopy(v, "some-other-path"); - printValueAsXML(s, true, true, v, ss, ps); - ASSERT_EQ(ss.str(), XML(" <path value=\"some-other-path\" />")); -} -} // namespace nix |