summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorGunnar Mills <gmills@us.ibm.com>2017-04-20 10:52:15 -0500
committerPatrick Williams <patrick@stwcx.xyz>2017-05-11 02:10:53 +0000
commit01d55c33ce892ab7a60a453288e9021af0be9f57 (patch)
treef0a59b760cf287015ce2935a62d40c56036ea8ed /test
parente91d321a9671ea317a203d128b67e2b320def58f (diff)
downloadphosphor-bmc-code-mgmt-01d55c33ce892ab7a60a453288e9021af0be9f57.tar.gz
phosphor-bmc-code-mgmt-01d55c33ce892ab7a60a453288e9021af0be9f57.zip
Move version gtests to phosphor-bmc-code-mgmt
Moving the version gtests from openpower-pnor-code-mgmt to phosphor-bmc-code-mgmt. This code has been reviewed before, the only changes are renaming to "namespace phosphor", changes related to renaming the files, and changes related to renaming function getVersion to getValue. Change-Id: Id799fcfff8effbb4c63f1f4e7169aa425567dd41 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
Diffstat (limited to 'test')
-rwxr-xr-xtest/Makefile.am16
-rwxr-xr-xtest/README.md20
-rwxr-xr-xtest/utest.cpp67
3 files changed, 103 insertions, 0 deletions
diff --git a/test/Makefile.am b/test/Makefile.am
new file mode 100755
index 0000000..187aedf
--- /dev/null
+++ b/test/Makefile.am
@@ -0,0 +1,16 @@
+AM_CPPFLAGS = -I$(top_srcdir)
+
+# gtest unit tests which run during a 'make check'
+check_PROGRAMS = utest
+
+# Run all 'check' test programs
+TESTS = $(check_PROGRAMS)
+
+# Build/add utest to test suite
+utest_CPPFLAGS = -Igtest $(GTEST_CPPFLAGS) $(AM_CPPFLAGS)
+utest_CXXFLAGS = $(PTHREAD_CFLAGS) $(PHOSPHOR_LOGGING_CFLAGS)
+utest_LDFLAGS = -lgtest_main -lgtest $(PTHREAD_LIBS) $(OESDK_TESTCASE_FLAGS) \
+ $(PHOSPHOR_LOGGING_LIBS) -lstdc++fs
+
+utest_SOURCES = utest.cpp
+utest_LDADD = $(top_builddir)/phosphor_version_software_manager-version.o
diff --git a/test/README.md b/test/README.md
new file mode 100755
index 0000000..6e62971
--- /dev/null
+++ b/test/README.md
@@ -0,0 +1,20 @@
+Instructions on how to execute UTEST.
+
+* When using an SDK - make sure it has been built
+ for an x86 machine.
+
+- First, generate the configure script with a call
+ to ./bootstrap.sh.
+- Once configure script generated, configure with flags
+ "./configure ${CONFIGURE_FLAGS} --enable-oe-sdk"
+- Be sure to include --enable-oe-sdk or the tests
+ will not run properly.
+- Lastly "make check" will build the application
+ source along with unit tests. Make check also
+ runs the unit tests automatically.
+
+* WHEN RUNNING UTEST remember to take advantage
+ of the gtest capabilities. "./utest --help"
+ - --gtest_repeat=[COUNT]
+ - --gtest_shuffle
+ - --gtest_random_seed=[NUMBER]
diff --git a/test/utest.cpp b/test/utest.cpp
new file mode 100755
index 0000000..3195a2f
--- /dev/null
+++ b/test/utest.cpp
@@ -0,0 +1,67 @@
+#include "version.hpp"
+#include <gtest/gtest.h>
+#include <experimental/filesystem>
+#include <stdlib.h>
+#include <fstream>
+#include <iostream>
+#include <sstream>
+#include <string>
+
+using namespace phosphor::software::manager;
+namespace fs = std::experimental::filesystem;
+
+
+class VersionTest : public testing::Test
+{
+ protected:
+
+ virtual void SetUp()
+ {
+ char versionDir[] = "./versionXXXXXX";
+ _directory = mkdtemp(versionDir);
+
+ if (_directory.empty())
+ {
+ throw std::bad_alloc();
+ }
+ }
+
+ virtual void TearDown()
+ {
+ fs::remove_all(_directory);
+ }
+
+ std::string _directory;
+};
+
+/** @brief Make sure we correctly get the version and purpose from getValue()*/
+TEST_F(VersionTest, TestGetValue)
+{
+ auto manifestFilePath = _directory + "/" + "MANIFEST";
+ auto version = "test-version";
+ auto purpose = "BMC";
+
+ std::ofstream file;
+ file.open(manifestFilePath, std::ofstream::out);
+ ASSERT_TRUE(file.is_open());
+
+ file << "version=" << version << std::endl;
+ file << "purpose=" << purpose << std::endl;
+ file.close();
+
+ EXPECT_EQ(Version::getValue(manifestFilePath, "version"), version);
+ EXPECT_EQ(Version::getValue(manifestFilePath, "purpose"), purpose);
+}
+
+/** @brief Make sure we correctly get the Id from getId()*/
+TEST_F(VersionTest, TestGetId)
+{
+ std::stringstream hexId;
+ auto version = "test-id";
+
+ hexId << std::hex << ((std::hash<std::string> {}(
+ version)) & 0xFFFFFFFF);
+
+ EXPECT_EQ(Version::getId(version), hexId.str());
+
+}
OpenPOWER on IntegriCloud