add_executable(migrateconfig migrateconfig.cpp) target_link_libraries(migrateconfig powerdevilcore) ecm_mark_as_test(migrateconfig) function(add_migrateconfig_test) set(options MOBILE VM CANNOT_SUSPEND ASSERT_NO_POWERDEVILRC_AFTER_MIGRATION) set(oneValueArgs NAME INPUT_POWERDEVILRC INPUT_PROFILESRC EXPECTED_POWERDEVILRC EXPECTED_PROFILESRC) cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "" ${ARGN}) set(migrateconfig_args "") set(diff_cmds "") if (ARG_INPUT_POWERDEVILRC) set(migrateconfig_args "${migrateconfig_args} --src-powerdevilrc \"${CMAKE_CURRENT_SOURCE_DIR}/${ARG_INPUT_POWERDEVILRC}\"") endif() if (ARG_INPUT_PROFILESRC) set(migrateconfig_args "${migrateconfig_args} --src-profilesrc \"${CMAKE_CURRENT_SOURCE_DIR}/${ARG_INPUT_PROFILESRC}\"") endif() if (ARG_ASSERT_NO_POWERDEVILRC_AFTER_MIGRATION) set(migrateconfig_args "${migrateconfig_args} --assert-no-powerdevilrc-after-migration") endif() if (ARG_EXPECTED_POWERDEVILRC) set(out_powerdevilrc "${CMAKE_CURRENT_BINARY_DIR}/${ARG_EXPECTED_POWERDEVILRC}") set(migrateconfig_args "${migrateconfig_args} --dest-powerdevilrc \"${out_powerdevilrc}\"") set(expected_powerdevilrc "${CMAKE_CURRENT_SOURCE_DIR}/${ARG_EXPECTED_POWERDEVILRC}") set(diff_cmds "${diff_cmds} && echo \"powerdevilrc diff (should be empty):\"") set(diff_cmds "${diff_cmds} && diff -u \"${expected_powerdevilrc}\" \"${out_powerdevilrc}\"") endif() if (ARG_EXPECTED_PROFILESRC) set(out_profilesrc "${CMAKE_CURRENT_BINARY_DIR}/${ARG_EXPECTED_PROFILESRC}") set(migrateconfig_args "${migrateconfig_args} --dest-profilesrc \"${out_profilesrc}\"") set(expected_profilesrc "${CMAKE_CURRENT_SOURCE_DIR}/${ARG_EXPECTED_PROFILESRC}") set(diff_cmds "${diff_cmds} && echo \"powermanagementprofilesrc diff (should be empty):\"") set(diff_cmds "${diff_cmds} && diff -u \"${expected_profilesrc}\" \"${out_profilesrc}\"") endif() if (ARG_MOBILE) set(migrateconfig_args "${helper_args} --mobile") endif() if (ARG_VM) set(migrateconfig_args "${helper_args} --vm") endif() if (ARG_CANNOT_SUSPEND) set(migrateconfig_args "${helper_args} --cannot-suspend") endif() add_test( NAME ${ARG_NAME} COMMAND bash -c "$ ${migrateconfig_args} ${diff_cmds}" ) endfunction() add_migrateconfig_test( NAME migrateconfig_test1_default_configs_can_suspend_to_ram INPUT_PROFILESRC test1_initial_powermanagementprofilesrc # as generated by Plasma 5 profile generator EXPECTED_PROFILESRC test1_migrated_powermanagementprofilesrc # same, except with profiles-migrated flag ASSERT_NO_POWERDEVILRC_AFTER_MIGRATION ) add_migrateconfig_test( NAME migrateconfig_test2_activities INPUT_POWERDEVILRC test2_initial_powerdevilrc INPUT_PROFILESRC test2_initial_powermanagementprofilesrc # with some extra activity settings EXPECTED_POWERDEVILRC test2_migrated_powerdevilrc EXPECTED_PROFILESRC test2_migrated_powermanagementprofilesrc ) add_migrateconfig_test( NAME migrateconfig_test2a_activities_no_double_migration INPUT_POWERDEVILRC test2_migrated_powerdevilrc INPUT_PROFILESRC test2_migrated_powermanagementprofilesrc EXPECTED_POWERDEVILRC test2_migrated_powerdevilrc EXPECTED_PROFILESRC test2_migrated_powermanagementprofilesrc ) add_migrateconfig_test( NAME migrateconfig_test3_profiles INPUT_PROFILESRC test3_initial_powermanagementprofilesrc # with varied non-default profile settings EXPECTED_POWERDEVILRC test3_migrated_powerdevilrc EXPECTED_PROFILESRC test3_migrated_powermanagementprofilesrc ) add_migrateconfig_test( NAME migrateconfig_test4_profiles_more INPUT_PROFILESRC test4_initial_powermanagementprofilesrc # with selected non-default profile settings EXPECTED_POWERDEVILRC test4_migrated_powerdevilrc )