diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 67f63a2..6a300d3 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,64 +1,55 @@ # Tests for KPMcore # # These are not so much "tests" as "small example programs". They illustrate # how to use the library, how to perform common tasks. set(CMAKE_SKIP_BUILD_RPATH FALSE) SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) include_directories(${CMAKE_SOURCE_DIR}/src) # To get at KPMcore headers add_compile_options(-fPIC) ### # # Helper macro to link to the helper (for initialization of kpmcore) # and to add a test with the given name. # add_library(testhelpers STATIC helpers.cpp) target_link_libraries(testhelpers) macro (kpm_test name) add_executable(${name} ${ARGN}) target_link_libraries(${name} testhelpers kpmcore Qt5::Core) endmacro() ### # # Tests of initialization: try explicitly loading some backends kpm_test(testinit testinit.cpp) # Default backend if(TARGET pmdummybackendplugin) add_test(NAME testinit-dummy COMMAND testinit $) endif() if(TARGET pmsfdiskbackendplugin) add_test(NAME testinit-sfdisk COMMAND testinit $) else() return() # All the rest really needs a working backend endif() set(BACKEND $) ### # # Listing devices, partitions kpm_test(testlist testlist.cpp) add_test(NAME testlist COMMAND testlist ${BACKEND}) kpm_test(testdevicescanner testdevicescanner.cpp) add_test(NAME testdevicescanner COMMAND testdevicescanner ${BACKEND}) find_package (Threads) ### # # Execute external commands as root kpm_test(testexternalcommand testexternalcommand.cpp) add_test(NAME testexternalcommand COMMAND testexternalcommand ${BACKEND}) - -# Including SMART files reference -set(SMARTPARSER ${CMAKE_SOURCE_DIR}/src/core/smartdiskinformation.cpp - ${CMAKE_SOURCE_DIR}/src/core/smartattributeparseddata.cpp - ${CMAKE_SOURCE_DIR}/src/core/smartparser.cpp) - -# Test SMART support -kpm_test(testsmart testsmart.cpp ${SMARTPARSER}) -add_test(NAME testsmart COMMAND testsmart ${BACKEND}) diff --git a/test/testsmart.cpp b/test/testsmart.cpp deleted file mode 100644 index 2236af7..0000000 --- a/test/testsmart.cpp +++ /dev/null @@ -1,102 +0,0 @@ -#include "helpers.h" - -#include "util/externalcommand.h" -#include "backend/corebackend.h" -#include "backend/corebackendmanager.h" -#include "core/smartstatus.h" -#include "core/smartparser.h" - -#include -#include - -static QString getDefaultDevicePath(); -static bool testSmartStatus(); -static bool testSmartParser(); - -int main(int argc, char **argv) -{ - QCoreApplication app(argc, argv); - - KPMCoreInitializer i; - - if (argc == 2) - i = KPMCoreInitializer(argv[1]); - - if (!i.isValid()) - return 1; - - CoreBackend *backend = CoreBackendManager::self()->backend(); - - if (!backend) - { - qWarning() << "Couldn't get backend."; - return 1; - } - - if (!testSmartStatus() || !testSmartParser()) - return 1; - - return app.exec(); -} - -static QString getDefaultDevicePath() -{ - // Getting default home partition using 'df -P /home | awk 'END{print $1}'' command - ExternalCommand command(QStringLiteral("df"), { QStringLiteral("-P"), QStringLiteral("/home"), QStringLiteral("|"), - QStringLiteral("awk"), QStringLiteral("\'END{print $1}\'") }); - - if (command.run() && command.exitCode() == 0) { - QString output = command.output(); - return output; - } - - return QString(); -} - -static bool testSmartStatus() -{ - QString devicePath = getDefaultDevicePath(); - - SmartStatus smart(devicePath); - - if (smart.devicePath() != devicePath) - return false; - - if (!smart.status()) - return false; - - if (smart.modelName() == QString()) - return false; - - if (smart.firmware() == QString()) - return false; - - if (smart.serial() == QString()) - return false; - - if (smart.selfTestStatus() != SmartStatus::SelfTestStatus::Success) - return false; - - if (!smart.isValid()) - return false; - - return true; -} - -static bool testSmartParser() -{ - QString devicePath = getDefaultDevicePath(); - - SmartParser parser(devicePath); - - if (!parser.init()) - return false; - - if (parser.devicePath() != devicePath) - return false; - - if (!parser.diskInformation()) - return false; - - return true; -}