diff --git a/src/api/test/functional/source_services_test.rb b/src/api/test/functional/source_services_test.rb index a44d845f8ac..e2f1882a199 100644 --- a/src/api/test/functional/source_services_test.rb +++ b/src/api/test/functional/source_services_test.rb @@ -72,23 +72,6 @@ def test_combine_project_service_list assert_response :success end - def wait_for_service( project, package ) - i=0 - while true - get "/source/#{project}/#{package}" - assert_response :success - node = ActiveXML::Node.new(@response.body) - return unless node.has_element? 'serviceinfo' - return if %w(failed succeeded).include? node.find_first(:serviceinfo).value(:code) # else "running" - i=i+1 - if i > 10 - puts 'ERROR in wait_for_service: service did not run until time limit' - exit 1 - end - sleep 0.5 - end - end - def test_run_source_service login_tom raw_put '/source/home:tom/service/_meta', " <description /> </package>" @@ -101,7 +84,8 @@ def test_run_source_service assert_nil Package.find_by_project_and_name("home:tom", "service").backend_package.error post '/source/home:tom/service?cmd=runservice' assert_response :success - wait_for_service( 'home:tom', 'service') + post '/source/home:tom/service?cmd=waitservice' + assert_response 400 # broken service get '/source/home:tom/service' assert_response :success assert_xml_tag :tag => 'serviceinfo', :attributes => { :code => 'failed' } @@ -118,7 +102,8 @@ def test_run_source_service assert_response :success post '/source/home:tom/service?cmd=runservice' assert_response :success - wait_for_service( 'home:tom', 'service') + post '/source/home:tom/service?cmd=waitservice' + assert_response :success get '/source/home:tom/service' assert_response :success assert_xml_tag :tag => 'serviceinfo', :attributes => { :code => 'succeeded' } @@ -160,7 +145,8 @@ def test_run_source_service put '/source/home:tom:branches:home:tom/service/new_file', 'content' assert_response :success assert_nil Package.find_by_project_and_name("home:tom:branches:home:tom", "service").backend_package.error - wait_for_service( 'home:tom:branches:home:tom', 'service') + post '/source/home:tom:branches:home:tom/service?cmd=waitservice' + assert_response :success UpdateNotificationEvents.new.perform assert_nil Package.find_by_project_and_name("home:tom:branches:home:tom", "service").backend_package.error get '/source/home:tom:branches:home:tom/service/_service:download_url:file?expand=1' @@ -234,7 +220,8 @@ def test_run_source_service assert_response :success post '/source/home:tom/service?cmd=runservice' assert_response :success - wait_for_service( 'home:tom', 'service') + post '/source/home:tom/service?cmd=waitservice' + assert_response :success get '/source/home:tom/service' assert_response :success assert_xml_tag :tag => 'serviceinfo', :attributes => { :code => 'succeeded' } @@ -336,14 +323,16 @@ def test_buildtime_service raw_put '/source/home:Iggy/service/pack.spec', "# Comment \nName: pack\nVersion: 12\nRelease: 9\nSummary: asd" assert_response :success - wait_for_service( 'home:Iggy', 'service') + post '/source/home:Iggy/service?cmd=waitservice' + assert_response :success put '/source/home:Iggy/service/_service', '<services> <service name="set_version" mode="buildtime"> <param name="version">0817</param> <param name="file">pack.spec</param> </service> </services>' assert_response :success - wait_for_service( 'home:Iggy', 'service') + post '/source/home:Iggy/service?cmd=waitservice' + assert_response :success run_scheduler('i586') get '/build/home:Iggy/_result' assert_response :success @@ -367,16 +356,19 @@ def test_source_commit_with_service login_tom put '/source/home:tom/service/_meta', "<package project='home:tom' name='service'> <title /> <description /> </package>" assert_response :success - wait_for_service( 'home:tom', 'service') + post '/source/home:tom/service?cmd=waitservice' + assert_response :success put '/source/home:tom/service/_service', '<services> <service name="set_version" > <param name="version">0819</param> <param name="file">pack.spec</param> </service> </services>' assert_response :success - wait_for_service( 'home:tom', 'service') + post '/source/home:tom/service?cmd=waitservice' + assert_response :success put '/source/home:tom/service/pack.spec', "# Comment \nVersion: 12\nRelease: 9\nSummary: asd" assert_response :success - wait_for_service( 'home:tom', 'service') + post '/source/home:tom/service?cmd=waitservice' + assert_response :success # find out the md5sum of _service file get '/source/home:tom/service' @@ -392,14 +384,16 @@ def test_source_commit_with_service md5sum_service + '" /> <entry name="pack.spec" md5="' + md5sum_spec + '" /> </directory> ' raw_post '/source/home:tom/service?cmd=commitfilelist', filelist assert_response :success - wait_for_service( 'home:tom', 'service') + post '/source/home:tom/service?cmd=waitservice' + assert_response :success get '/source/home:tom/service/_history' # do another commit, check that the service files are kept filelist = '<directory> <entry name="_service" md5="' + md5sum_service + '" /> <entry name="pack.spec" md5="' + md5sum_spec + '" /> </directory> ' raw_post '/source/home:tom/service?cmd=commitfilelist', filelist assert_response :success - wait_for_service( 'home:tom', 'service') + post '/source/home:tom/service?cmd=waitservice' + assert_response :success # validate revisions get '/source/home:tom/service/_history' @@ -434,7 +428,8 @@ def test_run_project_source_service assert_response :success post '/source/home:tom/service?cmd=runservice' assert_response :success - wait_for_service( 'home:tom', 'service') + post '/source/home:tom/service?cmd=waitservice' + assert_response 400 # broken service get '/source/home:tom/service' assert_response :success assert_xml_tag :tag => 'serviceinfo', :attributes => { :code => 'failed' } @@ -445,7 +440,8 @@ def test_run_project_source_service assert_response :success post '/source/home:tom/service?cmd=runservice' assert_response :success - wait_for_service( 'home:tom', 'service') + post '/source/home:tom/service?cmd=waitservice' + assert_response 400 # broken service get '/source/home:tom/service' assert_response :success assert_xml_tag :tag => 'serviceinfo', :attributes => { :code => 'failed' } @@ -473,7 +469,8 @@ def test_run_project_source_service assert_response :success post '/source/home:tom/service2?cmd=runservice' assert_response :success - wait_for_service( 'home:tom', 'service2') + post '/source/home:tom/service2?cmd=waitservice' + assert_response :success get '/source/home:tom/service2' assert_response :success assert_xml_tag :tag => 'serviceinfo', :attributes => { :code => 'succeeded' }