aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Rusak <lorusak@gmail.com>2019-05-08 22:44:17 -0700
committerLukas Rusak <lorusak@gmail.com>2020-01-14 19:37:54 -0800
commit7683a1dd08735246653d59069b6f80eeb0d1f82a (patch)
tree6716100864af901b301766719187d43db78dfb81
parentaf927c17985c00a9b831e45c1441e153341276da (diff)
kodi-test: add test cases for CSysfsPath
-rw-r--r--cmake/treedata/linux/tests.txt1
-rw-r--r--xbmc/platform/linux/test/CMakeLists.txt3
-rw-r--r--xbmc/platform/linux/test/TestSysfsPath.cpp40
3 files changed, 44 insertions, 0 deletions
diff --git a/cmake/treedata/linux/tests.txt b/cmake/treedata/linux/tests.txt
new file mode 100644
index 0000000000..3f3a3e35fd
--- /dev/null
+++ b/cmake/treedata/linux/tests.txt
@@ -0,0 +1 @@
+xbmc/platform/linux/test platform/linux/test
diff --git a/xbmc/platform/linux/test/CMakeLists.txt b/xbmc/platform/linux/test/CMakeLists.txt
new file mode 100644
index 0000000000..1fb0281ce0
--- /dev/null
+++ b/xbmc/platform/linux/test/CMakeLists.txt
@@ -0,0 +1,3 @@
+list(APPEND SOURCES TestSysfsPath.cpp)
+
+core_add_test_library(linux_test)
diff --git a/xbmc/platform/linux/test/TestSysfsPath.cpp b/xbmc/platform/linux/test/TestSysfsPath.cpp
new file mode 100644
index 0000000000..9d8171bc60
--- /dev/null
+++ b/xbmc/platform/linux/test/TestSysfsPath.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2005-2018 Team Kodi
+ * This file is part of Kodi - https://kodi.tv
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ * See LICENSES/README.md for more information.
+ */
+
+#include "platform/linux/SysfsPath.h"
+
+#include <fstream>
+
+#include <gtest/gtest.h>
+
+struct TestSysfsPath : public ::testing::Test
+{
+ ~TestSysfsPath() { std::remove("/tmp/kodi-test"); }
+};
+
+TEST_F(TestSysfsPath, SysfsPathTest)
+{
+ int temp{1234};
+ std::ofstream output{"/tmp/kodi-test"};
+ output << temp;
+ output.close();
+
+ CSysfsPath path("/tmp/kodi-test");
+ ASSERT_TRUE(path.Exists());
+ ASSERT_TRUE(path.Get<int>() == 1234);
+ ASSERT_TRUE(path.Get<float>() == 1234);
+ ASSERT_TRUE(path.Get<double>() == 1234);
+ ASSERT_TRUE(path.Get<uint64_t>() == 1234);
+ ASSERT_TRUE(path.Get<uint16_t>() == 1234);
+ ASSERT_TRUE(path.Get<unsigned int>() == 1234);
+ ASSERT_TRUE(path.Get<unsigned long int>() == 1234);
+ ASSERT_TRUE(path.Get<std::string>() == "1234");
+
+ CSysfsPath otherPath{"/thispathdoesnotexist"};
+ ASSERT_FALSE(otherPath.Exists());
+}