diff --git a/autotests/data/testpackage/metadata.desktop b/autotests/data/testpackage/metadata.desktop --- a/autotests/data/testpackage/metadata.desktop +++ b/autotests/data/testpackage/metadata.desktop @@ -44,6 +44,7 @@ Name[x-test]=xxTest Packagexx Name[zh_CN]=测试包 Name[zh_TW]=測試套件 +Comment=fancy shmancy summary Type=Service X-KDE-ServiceTypes=KPackage/Generic diff --git a/autotests/data/testpackage/testpackage.testappdataxml b/autotests/data/testpackage/testpackage.testappdataxml --- a/autotests/data/testpackage/testpackage.testappdataxml +++ b/autotests/data/testpackage/testpackage.testappdataxml @@ -44,6 +44,7 @@ xxTest Packagexx 测试包 測試套件 + fancy shmancy summary Joe Blow <jblow@kde.org> plasma GPL-2.0+ diff --git a/autotests/kpackagetoolappstreamtest.cmake b/autotests/kpackagetoolappstreamtest.cmake --- a/autotests/kpackagetoolappstreamtest.cmake +++ b/autotests/kpackagetoolappstreamtest.cmake @@ -7,3 +7,21 @@ if (error_compare) message(FATAL_ERROR "error on compare: ${error_compare}") endif() + +# Make sure the standard test passes appstream validation. +get_filename_component(generated_name ${generated} NAME) +if(${generated_name} STREQUAL "testpackage.appdata.xml") + find_program(APPSTREAMCLI appstreamcli) + if(APPSTREAMCLI) + execute_process(COMMAND ${APPSTREAMCLI} validate ${generated} + ERROR_VARIABLE appstream_stderr + OUTPUT_VARIABLE appstream_stdout + RESULT_VARIABLE result + ) + if(NOT result EQUAL 0) + message(FATAL_ERROR "appstream data seems to be imperfect: ${appstream_stderr} ${appstream_stdout}") + endif() + else() + message(WARNING "skipping appstream validation as no appstreamcli binary was found") + endif() +endif()