From 08f9289f862ce8341531edc475d4fe9ebf1d755f Mon Sep 17 00:00:00 2001 From: Martin Kampas Date: Tue, 9 Apr 2013 13:47:12 +0200 Subject: [PATCH] ut_deviceinfo: initial commit --- tests/tests.pro | 1 + tests/tests.xml | 5 ++ tests/ut_deviceinfo/deviceinfotest.cpp | 71 +++++++++++++++++++ tests/ut_deviceinfo/deviceinfotest.h | 23 ++++++ tests/ut_deviceinfo/main.cpp | 26 +++++++ .../ut_deviceinfo/testdata/board-mappings.ini | 53 ++++++++++++++ tests/ut_deviceinfo/testdata/repos.ini | 32 +++++++++ tests/ut_deviceinfo/testdata/ssu-defaults.ini | 1 + tests/ut_deviceinfo/testdata/ssu.ini | 18 +++++ tests/ut_deviceinfo/ut_deviceinfo.pro | 18 +++++ .../ut_deviceinfo_dependencies.pri | 1 + 11 files changed, 249 insertions(+) create mode 100644 tests/ut_deviceinfo/deviceinfotest.cpp create mode 100644 tests/ut_deviceinfo/deviceinfotest.h create mode 100644 tests/ut_deviceinfo/main.cpp create mode 100644 tests/ut_deviceinfo/testdata/board-mappings.ini create mode 100644 tests/ut_deviceinfo/testdata/repos.ini create mode 100644 tests/ut_deviceinfo/testdata/ssu-defaults.ini create mode 100644 tests/ut_deviceinfo/testdata/ssu.ini create mode 100644 tests/ut_deviceinfo/ut_deviceinfo.pro create mode 100644 tests/ut_deviceinfo/ut_deviceinfo_dependencies.pri diff --git a/tests/tests.pro b/tests/tests.pro index 483a3f0..ab195f5 100644 --- a/tests/tests.pro +++ b/tests/tests.pro @@ -4,6 +4,7 @@ SUBDIRS = \ testutils \ testutils/sandboxhook.pro \ ut_coreconfig \ + ut_deviceinfo \ ut_rndssucli \ ut_sandbox \ ut_settings \ diff --git a/tests/tests.xml b/tests/tests.xml index a28ebbc..131cd0c 100644 --- a/tests/tests.xml +++ b/tests/tests.xml @@ -8,6 +8,11 @@ /opt/tests/ssu/runtest.sh ut_coreconfig + + + /opt/tests/ssu/runtest.sh ut_deviceinfo + + /opt/tests/ssu/runtest.sh ut_rndssucli diff --git a/tests/ut_deviceinfo/deviceinfotest.cpp b/tests/ut_deviceinfo/deviceinfotest.cpp new file mode 100644 index 0000000..e51853d --- /dev/null +++ b/tests/ut_deviceinfo/deviceinfotest.cpp @@ -0,0 +1,71 @@ +/** + * @file deviceinfotest.cpp + * @copyright 2013 Jolla Ltd. + * @author Martin Kampas + * @date 2013 + */ + +#include "deviceinfotest.h" + +#include + +#include "libssu/ssudeviceinfo.h" + +void DeviceInfoTest::testAdaptationVariables(){ + SsuDeviceInfo deviceInfo("N950"); + QHash variables; + QHash variablesExpected; + variablesExpected["adaptation"] = "n950-n9"; + variablesExpected["foo-n9"] = "foo-n9-val"; + variablesExpected["foo-n950-n9"] = "foo-n950-n9-val"; + + QString repoName = deviceInfo.adaptationVariables("adaptation1", &variables); + + QCOMPARE(variables, variablesExpected); + QCOMPARE(repoName, QString("adaptation")); +} + +void DeviceInfoTest::testDeviceUid(){ + QVERIFY2(!SsuDeviceInfo().deviceUid().isEmpty(), "No method to get device UID on this platform"); +} + +void DeviceInfoTest::testVariableSection(){ + SsuDeviceInfo deviceInfo; + + QHash fooVars; + QHash fooVarsExpected; + fooVarsExpected["foo1"] = "foo1Val"; + fooVarsExpected["foo2"] = "foo2Val"; + + deviceInfo.variableSection("foo", &fooVars); + + QCOMPARE(fooVars, fooVarsExpected); + + QHash barVars; + QHash barVarsExpected; + barVarsExpected["bar1"] = "bar1Val"; + barVarsExpected["bar2"] = "bar2Val"; + + deviceInfo.variableSection("bar", &barVars); + + QCOMPARE(barVars, barVarsExpected); + + QHash bazVars; + QHash bazVarsExpected; + bazVarsExpected["foo1"] = "foo1Val"; + bazVarsExpected["foo2"] = "foo2Val"; + bazVarsExpected["bar1"] = "bar1Val"; + bazVarsExpected["bar2"] = "bar2Val"; + + deviceInfo.variableSection("baz", &bazVars); + + QCOMPARE(bazVars, bazVarsExpected); +} + +void DeviceInfoTest::testValue(){ + SsuDeviceInfo deviceInfo("N950"); + QCOMPARE(deviceInfo.value("family").toString(), QString("n950-n9")); + QCOMPARE(deviceInfo.value("adaptation-repos").toStringList(), + QString("n9xx-common,n950-n9").split(',')); + QCOMPARE(deviceInfo.value("foo").toString(), QString("n950-foo")); +} diff --git a/tests/ut_deviceinfo/deviceinfotest.h b/tests/ut_deviceinfo/deviceinfotest.h new file mode 100644 index 0000000..58da514 --- /dev/null +++ b/tests/ut_deviceinfo/deviceinfotest.h @@ -0,0 +1,23 @@ +/** + * @file deviceinfotest.h + * @copyright 2013 Jolla Ltd. + * @author Martin Kampas + * @date 2013 + */ + +#ifndef _DEVICEINFOTEST_H +#define _DEVICEINFOTEST_H + +#include + +class DeviceInfoTest: public QObject { + Q_OBJECT + + private slots: + void testAdaptationVariables(); + void testDeviceUid(); + void testVariableSection(); + void testValue(); +}; + +#endif diff --git a/tests/ut_deviceinfo/main.cpp b/tests/ut_deviceinfo/main.cpp new file mode 100644 index 0000000..1e363a9 --- /dev/null +++ b/tests/ut_deviceinfo/main.cpp @@ -0,0 +1,26 @@ +/** + * @file main.cpp + * @copyright 2012 Jolla Ltd. + * @author Martin Kampas + * @date 2012 + */ + +#include + +#include "libssu/sandbox_p.h" +#include "deviceinfotest.h" + +int main(int argc, char **argv){ + Sandbox sandbox(QString("%1/configroot").arg(TESTS_DATA_PATH), + Sandbox::UseAsSkeleton, Sandbox::ThisProcess); + if (!sandbox.activate()){ + qFatal("Failed to activate sandbox"); + } + + DeviceInfoTest deviceinfoTest; + + if (QTest::qExec(&deviceinfoTest, argc, argv)) + return 1; + + return 0; +} diff --git a/tests/ut_deviceinfo/testdata/board-mappings.ini b/tests/ut_deviceinfo/testdata/board-mappings.ini new file mode 100644 index 0000000..4648fce --- /dev/null +++ b/tests/ut_deviceinfo/testdata/board-mappings.ini @@ -0,0 +1,53 @@ +[file.exists] +SDK=/mer-sdk-chroot + +[systeminfo.equals] + +[cpuinfo.contains] +N900=Nokia RX-51 board +N950=Nokia RM-680 board +N9=Nokia RM-696 board + +[arch.equals] +generic-x86=i586 + +[variants] +N950=N9 + +[N9] +family=n950-n9 +adaptation-repos=n9xx-common,n950-n9 +variables = n9 + +[var-n9] +foo-n9 = foo-n9-val + +[var-n950-n9] +foo-n950-n9 = foo-n950-n9-val + +[N900] +family=n900 +adaptation-repos=n9xx-common,n900 + +[N950] +foo = n950-foo + +[SDK] + +[generic-x86] +family=x86 +adaptation-repos=x86 + +[UNKNOWN] +family=UNKNOWN + +[var-foo] +foo1 = foo1Val +foo2 = foo2Val + +[var-bar] +bar1 = bar1Val +bar2 = bar2Val + +[var-baz] +variables = foo, bar diff --git a/tests/ut_deviceinfo/testdata/repos.ini b/tests/ut_deviceinfo/testdata/repos.ini new file mode 100644 index 0000000..60744db --- /dev/null +++ b/tests/ut_deviceinfo/testdata/repos.ini @@ -0,0 +1,32 @@ +[all] +credentials=jolla +credentials-url=https://%(ssuRegDomain)/%(ssuRegPath)/%1/credentials.xml +register-url=https://%(ssuRegDomain)/%(ssuRegPath)/%1/register.xml + +[release] +mer-core=https://%(packagesDomain)/%(release)/mer/%(arch)/%(debugSplit)/ + +[rnd] +mer-core=https://%(packagesDomain)/mer/%(release)/builds/%(arch)/%(debugSplit)/ + +[devel-flavour] +flavour-pattern= + +[release-flavour] +flavour-pattern=:/release + +[testing-flavour] +flavour-pattern=:/testing + +[example-domain] +dumpDomain=dump.example.com +packagesDomain=packages.example.com +ssuRegDomain=ssu.example.com +ssuRegPath=ssu/device + +# fallback if domain is not matched or not set +[default-domain] +dumpDomain=dump.testing.com +packagesDomain=packages.testing.com +ssuRegDomain=ssu.testing.com +ssuRegPath=ssu/device diff --git a/tests/ut_deviceinfo/testdata/ssu-defaults.ini b/tests/ut_deviceinfo/testdata/ssu-defaults.ini new file mode 100644 index 0000000..1bb8bf6 --- /dev/null +++ b/tests/ut_deviceinfo/testdata/ssu-defaults.ini @@ -0,0 +1 @@ +# empty diff --git a/tests/ut_deviceinfo/testdata/ssu.ini b/tests/ut_deviceinfo/testdata/ssu.ini new file mode 100644 index 0000000..2f87b9c --- /dev/null +++ b/tests/ut_deviceinfo/testdata/ssu.ini @@ -0,0 +1,18 @@ +[General] +initialized=true +flavour=testing +registered=false +rndRelease=next +release=latest +adaptation= +ca-certificate= +credentials-scope=example +credentials-url-example = http://creden.tia.ls/ + +[credentials-example] +username = example_username +password = example_password + +[repository-urls] + +[repository-url-variables] diff --git a/tests/ut_deviceinfo/ut_deviceinfo.pro b/tests/ut_deviceinfo/ut_deviceinfo.pro new file mode 100644 index 0000000..02c0d4b --- /dev/null +++ b/tests/ut_deviceinfo/ut_deviceinfo.pro @@ -0,0 +1,18 @@ +TARGET = ut_deviceinfo +include(../testapplication.pri) +include(ut_deviceinfo_dependencies.pri) + +HEADERS = \ + deviceinfotest.h \ + +SOURCES = \ + main.cpp \ + deviceinfotest.cpp \ + +test_data_etc.files = \ + testdata/ssu.ini \ + +test_data_usr_share.files = \ + testdata/ssu-defaults.ini \ + testdata/board-mappings.ini \ + testdata/repos.ini \ diff --git a/tests/ut_deviceinfo/ut_deviceinfo_dependencies.pri b/tests/ut_deviceinfo/ut_deviceinfo_dependencies.pri new file mode 100644 index 0000000..37c741f --- /dev/null +++ b/tests/ut_deviceinfo/ut_deviceinfo_dependencies.pri @@ -0,0 +1 @@ +include(../../libssu/libssu.pri)