123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- #***************************************************************************
- # _ _ ____ _
- # Project ___| | | | _ \| |
- # / __| | | | |_) | |
- # | (__| |_| | _ <| |___
- # \___|\___/|_| \_\_____|
- #
- # Copyright (C) 2020-2022, Daniel Stenberg, <daniel@haxx.se>, et al.
- # Copyright (C) 2020-2022, Marc Hoersken, <info@marc-hoersken.de>
- #
- # This software is licensed as described in the file COPYING, which
- # you should have received as part of this distribution. The terms
- # are also available at https://curl.se/docs/copyright.html.
- #
- # You may opt to use, copy, modify, merge, publish, distribute and/or sell
- # copies of the Software, and permit persons to whom the Software is
- # furnished to do so, under the terms of the COPYING file.
- #
- # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- # KIND, either express or implied.
- #
- # SPDX-License-Identifier: curl
- #
- ###########################################################################
- use strict;
- use warnings;
- my %APPVEYOR_TEST_NAMES;
- sub appveyor_check_environment {
- if(defined $ENV{'APPVEYOR_API_URL'} && $ENV{'APPVEYOR_API_URL'}) {
- return 1;
- }
- return 0;
- }
- sub appveyor_create_test_result {
- my ($curl, $testnum, $testname)=@_;
- $testname =~ s/\\/\\\\/g;
- $testname =~ s/\'/\\\'/g;
- $testname =~ s/\"/\\\"/g;
- my $appveyor_baseurl="$ENV{'APPVEYOR_API_URL'}";
- my $appveyor_result=`$curl --silent --noproxy "*" \\
- --header "Content-Type: application/json" \\
- --data "
- {
- 'testName': '$testname',
- 'testFramework': 'runtests.pl',
- 'fileName': 'tests/data/test$testnum',
- 'outcome': 'Running'
- }
- " \\
- "$appveyor_baseurl/api/tests"`;
- print "AppVeyor API result: $appveyor_result\n" if ($appveyor_result);
- $APPVEYOR_TEST_NAMES{$testnum}=$testname;
- }
- sub appveyor_update_test_result {
- my ($curl, $testnum, $error, $start, $stop)=@_;
- my $testname=$APPVEYOR_TEST_NAMES{$testnum};
- if(!defined $testname) {
- return;
- }
- if(!defined $stop) {
- $stop = $start;
- }
- my $appveyor_duration = sprintf("%.0f", ($stop-$start)*1000);
- my $appveyor_outcome;
- my $appveyor_category;
- if($error == 2) {
- $appveyor_outcome = 'Ignored';
- $appveyor_category = 'Error';
- }
- elsif($error < 0) {
- $appveyor_outcome = 'NotRunnable';
- $appveyor_category = 'Warning';
- }
- elsif(!$error) {
- $appveyor_outcome = 'Passed';
- $appveyor_category = 'Information';
- }
- else {
- $appveyor_outcome = 'Failed';
- $appveyor_category = 'Error';
- }
- my $appveyor_baseurl="$ENV{'APPVEYOR_API_URL'}";
- my $appveyor_result=`$curl --silent --noproxy "*" --request PUT \\
- --header "Content-Type: application/json" \\
- --data "
- {
- 'testName': '$testname',
- 'testFramework': 'runtests.pl',
- 'fileName': 'tests/data/test$testnum',
- 'outcome': '$appveyor_outcome',
- 'durationMilliseconds': $appveyor_duration,
- 'ErrorMessage': 'Test $testnum $appveyor_outcome'
- }
- " \\
- "$appveyor_baseurl/api/tests"`;
- print "AppVeyor API result: $appveyor_result\n" if ($appveyor_result);
- if($appveyor_category eq 'Error') {
- $appveyor_result=`$curl --silent --noproxy "*" \\
- --header "Content-Type: application/json" \\
- --data "
- {
- 'message': '$appveyor_outcome: $testname',
- 'category': '$appveyor_category',
- 'details': 'Test $testnum $appveyor_outcome'
- }
- " \\
- "$appveyor_baseurl/api/build/messages"`;
- print "AppVeyor API result: $appveyor_result\n" if ($appveyor_result);
- }
- }
- 1;
|