diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 5f8a31d8ca..0000000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,147 +0,0 @@ -# This YAML recipe builds KStars with INDI support, then runs all tests - -# This is from packaging/linux/debian/control build-depends - fix that first if there is an issue in the CI build -.install_build_dependencies: &install_build_dependencies - - apt update && apt -y install --no-install-recommends software-properties-common - - apt update && add-apt-repository ppa:mutlaqja/ppa - - > - apt update && apt -y install --no-install-recommends - gcc-multilib - g++-multilib - make - gettext - coreutils - cmake - extra-cmake-modules - qtbase5-dev - qtdeclarative5-dev - qtmultimedia5-dev - qtpositioning5-dev - libqt5websockets5-dev - libqt5svg5-dev - libqt5sql5-sqlite - kdoctools-dev - libkf5config-dev - libkf5guiaddons-dev - libkf5i18n-dev - libkf5newstuff-dev - libkf5notifications-dev - libkf5xmlgui-dev - libkf5plotting-dev - libkf5crash-dev - libkf5notifyconfig-dev - libeigen3-dev - zlib1g-dev - libcfitsio-dev - libnova-dev - libindi-dev - indi-bin - wcslib-dev - libraw-dev - libgsl-dev - phonon4qt5-backend-vlc - qt5keychain-dev - libsecret-1-dev - -# This is from packaging/linux/debian/control recommends/depends - fix that first if there is an issue in the CI build -.install_test_dependencies: &install_test_dependencies - - apt update && apt -y install --no-install-recommends software-properties-common - - apt update && add-apt-repository ppa:mutlaqja/ppa && add-apt-repository ppa:pch/phd2 - - > - apt update && - apt -y --no-install-recommends install - make - cmake - extra-cmake-modules - xplanet - xplanet-images - astrometry.net - kded5 - kinit - libindi1 - indi-bin - breeze-icon-theme - libqt5sql5-sqlite - qml-module-qtquick-controls - phd2 - xvfb - -#image: ubuntu:latest - -# Run the full validation in one step -# The artifacts take far too much time to propagate from one step to the other -# The cache is unreliable, and only works on the same runner if there is no shared cache - use it for ccache instead -# Consolidate runner with build packages and build -build-and-test: - stage: test - interruptible: true - image: tallfurryman/kstars-ci -# before_script: -# - *install_build_dependencies -# - *install_test_dependencies - script: - - mkdir -p kstars-build - - cd kstars-build - - cmake -DCMAKE_BUILD_TYPE=Release .. - - make -j$(nproc) clean all install - - rm -rf Testing - - xvfb-run make test QT_TEST_TIMEOUT_FUNCTION=600000 QT_QPA_PLATFORM=eglfs ARGS='-T test -V --output-on-failure --no-compress-output' || true - - apt install -y --no-install-recommends libsaxon-java openjdk-11-jre-headless - - saxon-xslt -u $(find ./Testing -name Test.xml) https://raw.githubusercontent.com/rpavlik/jenkins-ctest-plugin/master/ctest-to-junit.xsl > ./junit_result.xml - artifacts: - reports: - junit: - kstars-build/junit_result.xml - -# This part kept for reference, does not work on our gitlab instance -# Mainly because of the propagation of artifact from stage build to stage test -# Probably because the upload uses a webdav REST API, and there are many large files in the list -# In the meantime, following up on the many gitlab issues reporting that problem - -# We build and test -#stages: -# - build -# - test - -# We cache the build folder per job and per branch -# cache: -# key: "$CI_COMMIT_REF_SLUG" -# paths: -# - kstars-build/ - -# Consolidate runner with build packages and build -#build-kstars: -# stage: build -# interruptible: true -# before_script: -# - *install_build_dependencies -# script: -# - mkdir -p kstars-build -# - cd kstars-build -# - cmake -DCMAKE_BUILD_TYPE=Release .. -# - make -j$(nproc) clean all -# artifacts: -# expire_in: 3600 sec -# paths: -# - kstars-build/ -# exclude: -# - kstars-build/**/*.o - -# Consolidate runner with test packages and test -#test-kstars: -# stage: test -# interruptible: true -# needs: -# - build-kstars -# dependencies: -# - build-kstars -# before_script: -# - *install_test_dependencies -# script: -# - cd kstars-build -# - rm -rf Testing -# - xvfb-run -a make test QT_TEST_TIMEOUT_FUNCTION=600000 ARGS='-T test --no-compress-output' -# artifacts: -# reports: -# junit: -# kstars-build/Testing/**.xml diff --git a/Tests/kstars_ui/CMakeLists.txt b/Tests/kstars_ui/CMakeLists.txt index b9e84a939a..07f0e2dba2 100644 --- a/Tests/kstars_ui/CMakeLists.txt +++ b/Tests/kstars_ui/CMakeLists.txt @@ -21,12 +21,9 @@ INCLUDE_DIRECTORIES(${INDI_INCLUDE_DIR}) SET(KSTARS_UI_EKOS_SRC ${KSTARS_UI_TESTS_SRC} test_ekos_wizard.cpp) SET(KSTARS_UI_EKOS_LIBS ${TEST_LIBRARIES} ${CFITSIO_LIBRARIES} ${INDI_CLIENT_LIBRARIES} ${NOVA_LIBRARIES} z) -# FIXME: this particular test crashes when done on the EGLFS platform -# Disabling until we find the reason, other tests do cover this scenario - -# ADD_EXECUTABLE(test_ekos ${KSTARS_UI_EKOS_SRC} test_ekos.cpp) -# TARGET_LINK_LIBRARIES(test_ekos ${KSTARS_UI_EKOS_LIBS}) -# ADD_TEST(NAME TestEkosProfiles COMMAND test_ekos) +ADD_EXECUTABLE(test_ekos ${KSTARS_UI_EKOS_SRC} test_ekos.cpp) +TARGET_LINK_LIBRARIES(test_ekos ${KSTARS_UI_EKOS_LIBS}) +ADD_TEST(NAME TestEkosProfiles COMMAND test_ekos) ADD_EXECUTABLE(test_ekos_simulator ${KSTARS_UI_EKOS_SRC} test_ekos_simulator.cpp) TARGET_LINK_LIBRARIES(test_ekos_simulator ${KSTARS_UI_EKOS_LIBS}) diff --git a/Tests/kstars_ui/kstars_ui_tests.cpp b/Tests/kstars_ui/kstars_ui_tests.cpp index 1379232a3b..1fa01741ef 100644 --- a/Tests/kstars_ui/kstars_ui_tests.cpp +++ b/Tests/kstars_ui/kstars_ui_tests.cpp @@ -90,9 +90,6 @@ int run_wizards(int argc, char *argv[]) } #endif - Q_UNUSED(argc); - Q_UNUSED(argv); - return failure; } @@ -113,6 +110,42 @@ void execute_tests() } } -#if !defined(HAVE_INDI) -QTEST_KSTARS_MAIN(KStarsUiTests) +#if 1 +//QTEST_KSTARS_MAIN(KStarsUiTests) +#else +// This weak main function serves when only the KStars tests are run, and nothing else. +// It serves as an expanded example to what happens when running tests with KSTARS_UI_TEST. +int __attribute__((weak)) main(int argc, char * argv[]) +{ + // We create our application + QApplication app(argc, argv); + + // We configure our application environment + prepare_tests(); + + int failure = 0; + + // We delay the tests with a timer because we need to run tests in an initialized UI + QTimer::singleShot(1000, QApplication::instance(), [&] { + + qDebug("Starting tests..."); + + // Run KStars wizard + failure |= run_wizards(argc, argv); + + // Run example tests - we'd better test our documentation :) + KStarsUiTests tc; + failure |= QTest::qExec(&tc, argc, argv); + + qDebug("Tests are done."); + + QApplication::instance()->quit(); + }); + + // We launch the UI application, and let delayed tests do their job asynchronously + execute_tests(); + + // And we return the result + return failure; +} #endif diff --git a/datahandlers/catalogdb.cpp b/datahandlers/catalogdb.cpp index 984ce25882..17183423b4 100644 --- a/datahandlers/catalogdb.cpp +++ b/datahandlers/catalogdb.cpp @@ -34,13 +34,7 @@ bool CatalogDB::Initialize() { - skydb_ = QSqlDatabase::addDatabase("QSQLITE", "skydb"); - if (!skydb_.isValid()) - { - qCCritical(KSTARS_CATALOG()) << "Unable to prepare database of type sqlite!"; - return false; - } - + skydb_ = QSqlDatabase::addDatabase("QSQLITE", "skydb"); QString dbfile = KSPaths::locate(QStandardPaths::GenericDataLocation, QString("skycomponents.sqlite")); if (dbfile.isEmpty()) dbfile = KSPaths::writableLocation(QStandardPaths::GenericDataLocation) + QString("skycomponents.sqlite"); @@ -123,7 +117,6 @@ void CatalogDB::FirstRun() qCWarning(KSTARS_CATALOG) << query.lastError(); } } - qCWarning(KSTARS_CATALOG) << "Additional Sky Catalog Database rebuilt."; } CatalogDB::~CatalogDB() diff --git a/docker/Dockerfile b/docker/Dockerfile deleted file mode 100644 index fee6087d8f..0000000000 --- a/docker/Dockerfile +++ /dev/null @@ -1,66 +0,0 @@ -FROM ubuntu:latest - -# Suitable for builds -RUN apt update && apt -y install --no-install-recommends software-properties-common -RUN apt update && add-apt-repository ppa:mutlaqja/ppa -RUN apt update && apt -y install --no-install-recommends \ - gcc-multilib \ - g++-multilib \ - make \ - gettext \ - coreutils \ - cmake \ - extra-cmake-modules \ - qtbase5-dev \ - qtdeclarative5-dev \ - qtmultimedia5-dev \ - qtpositioning5-dev \ - libqt5websockets5-dev \ - libqt5svg5-dev \ - libqt5sql5-sqlite \ - kdoctools-dev \ - libkf5config-dev \ - libkf5guiaddons-dev \ - libkf5i18n-dev \ - libkf5newstuff-dev \ - libkf5notifications-dev \ - libkf5xmlgui-dev \ - libkf5plotting-dev \ - libkf5crash-dev \ - libkf5notifyconfig-dev \ - libeigen3-dev \ - zlib1g-dev \ - libcfitsio-dev \ - libnova-dev \ - libindi-dev \ - indi-bin \ - wcslib-dev \ - libraw-dev \ - libgsl-dev \ - phonon4qt5-backend-vlc \ - qt5keychain-dev \ - libsecret-1-dev - -# Suitable for tests -RUN apt update && add-apt-repository ppa:mutlaqja/ppa -RUN apt update && add-apt-repository ppa:pch/phd2 -RUN apt update && apt -y --no-install-recommends install \ - make \ - cmake \ - extra-cmake-modules \ - xplanet \ - xplanet-images \ - astrometry.net \ - kded5 \ - kinit \ - libindi1 \ - indi-bin \ - breeze-icon-theme \ - libqt5sql5-sqlite \ - qml-module-qtquick-controls \ - gsc gsc-data \ - phd2 \ - xvfb - -CMD /bin/bash - diff --git a/kstars/kstarsdata.cpp b/kstars/kstarsdata.cpp index b1bfcecdd8..9319503bc6 100644 --- a/kstars/kstarsdata.cpp +++ b/kstars/kstarsdata.cpp @@ -49,7 +49,6 @@ namespace // Calls QApplication::exit void fatalErrorMessage(QString fname) { - qCCritical(KSTARS) << i18n("Critical File not Found: %1", fname); KSNotification::sorry(i18n("The file %1 could not be found. " "KStars cannot run properly without this file. " "KStars searches for this file in following locations:\n\n\t" @@ -58,6 +57,7 @@ void fatalErrorMessage(QString fname) fname, QStandardPaths::standardLocations(QStandardPaths::DataLocation).join("\n\t")), i18n("Critical File Not Found: %1", fname)); // FIXME: Must list locations depending on file type + qDebug() << i18n("Critical File Not Found: %1", fname); qApp->exit(1); } @@ -66,7 +66,6 @@ void fatalErrorMessage(QString fname) // Calls QApplication::exit if he don't bool nonFatalErrorMessage(QString fname) { - qCWarning(KSTARS) << i18n( "Non-Critical File Not Found: %1", fname ); #ifdef KSTARS_LITE Q_UNUSED(fname); return true;