diff options
| author | Gunnar Mills <gmills@us.ibm.com> | 2017-04-20 10:52:15 -0500 |
|---|---|---|
| committer | Patrick Williams <patrick@stwcx.xyz> | 2017-05-11 02:10:53 +0000 |
| commit | 01d55c33ce892ab7a60a453288e9021af0be9f57 (patch) | |
| tree | f0a59b760cf287015ce2935a62d40c56036ea8ed /test | |
| parent | e91d321a9671ea317a203d128b67e2b320def58f (diff) | |
| download | phosphor-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-x | test/Makefile.am | 16 | ||||
| -rwxr-xr-x | test/README.md | 20 | ||||
| -rwxr-xr-x | test/utest.cpp | 67 |
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()); + +} |

