Annotation of embedaddon/curl/tests/appveyor.pm, revision 1.1.1.1

1.1       misho       1: #***************************************************************************
                      2: #                                  _   _ ____  _
                      3: #  Project                     ___| | | |  _ \| |
                      4: #                             / __| | | | |_) | |
                      5: #                            | (__| |_| |  _ <| |___
                      6: #                             \___|\___/|_| \_\_____|
                      7: #
                      8: # Copyright (C) 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
                      9: # Copyright (C) 2020, Marc Hoersken, <info@marc-hoersken.de>
                     10: #
                     11: # This software is licensed as described in the file COPYING, which
                     12: # you should have received as part of this distribution. The terms
                     13: # are also available at https://curl.haxx.se/docs/copyright.html.
                     14: #
                     15: # You may opt to use, copy, modify, merge, publish, distribute and/or sell
                     16: # copies of the Software, and permit persons to whom the Software is
                     17: # furnished to do so, under the terms of the COPYING file.
                     18: #
                     19: # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
                     20: # KIND, either express or implied.
                     21: #
                     22: ###########################################################################
                     23: 
                     24: use strict;
                     25: use warnings;
                     26: 
                     27: my %APPVEYOR_TEST_NAMES;
                     28: 
                     29: sub appveyor_check_environment {
                     30:     if(defined $ENV{'APPVEYOR_API_URL'} && $ENV{'APPVEYOR_API_URL'}) {
                     31:         return 1;
                     32:     }
                     33:     return 0;
                     34: }
                     35: 
                     36: sub appveyor_create_test_result {
                     37:     my ($testnum, $testname)=@_;
                     38:     $testname =~ s/\\/\\\\/g;
                     39:     $testname =~ s/\'/\\\'/g;
                     40:     $testname =~ s/\"/\\\"/g;
                     41:     my $appveyor_baseurl="$ENV{'APPVEYOR_API_URL'}";
                     42:     my $appveyor_result=`curl --silent --noproxy "*" \\
                     43:     --header "Content-Type: application/json" \\
                     44:     --data "
                     45:         {
                     46:             'testName': '$testname',
                     47:             'testFramework': 'runtests.pl',
                     48:             'fileName': 'tests/data/test$testnum',
                     49:             'outcome': 'Running'
                     50:         }
                     51:     " \\
                     52:     "$appveyor_baseurl/api/tests"`;
                     53:     print "AppVeyor API result: $appveyor_result\n" if ($appveyor_result);
                     54:     $APPVEYOR_TEST_NAMES{$testnum}=$testname;
                     55: }
                     56: 
                     57: sub appveyor_update_test_result {
                     58:     my ($testnum, $error, $start, $stop)=@_;
                     59:     my $testname=$APPVEYOR_TEST_NAMES{$testnum};
                     60:     if(!defined $testname) {
                     61:         return;
                     62:     }
                     63:     if(!defined $stop) {
                     64:         $stop = $start;
                     65:     }
                     66:     my $appveyor_duration = sprintf("%.0f", ($stop-$start)*1000);
                     67:     my $appveyor_outcome;
                     68:     my $appveyor_category;
                     69:     if($error == 2) {
                     70:         $appveyor_outcome = 'Ignored';
                     71:         $appveyor_category = 'Error';
                     72:     }
                     73:     elsif($error < 0) {
                     74:         $appveyor_outcome = 'NotRunnable';
                     75:         $appveyor_category = 'Warning';
                     76:     }
                     77:     elsif(!$error) {
                     78:         $appveyor_outcome = 'Passed';
                     79:         $appveyor_category = 'Information';
                     80:     }
                     81:     else {
                     82:         $appveyor_outcome = 'Failed';
                     83:         $appveyor_category = 'Error';
                     84:     }
                     85:     my $appveyor_baseurl="$ENV{'APPVEYOR_API_URL'}";
                     86:     my $appveyor_result=`curl --silent --noproxy "*" --request PUT \\
                     87:     --header "Content-Type: application/json" \\
                     88:     --data "
                     89:         {
                     90:             'testName': '$testname',
                     91:             'testFramework': 'runtests.pl',
                     92:             'fileName': 'tests/data/test$testnum',
                     93:             'outcome': '$appveyor_outcome',
                     94:             'durationMilliseconds': $appveyor_duration,
                     95:             'ErrorMessage': 'Test $testnum $appveyor_outcome'
                     96:         }
                     97:     " \\
                     98:     "$appveyor_baseurl/api/tests"`;
                     99:     print "AppVeyor API result: $appveyor_result\n" if ($appveyor_result);
                    100:     if($appveyor_category eq 'Error') {
                    101:         $appveyor_result=`curl --silent --noproxy "*" \\
                    102:         --header "Content-Type: application/json" \\
                    103:         --data "
                    104:             {
                    105:                 'message': '$appveyor_outcome: $testname',
                    106:                 'category': '$appveyor_category',
                    107:                 'details': 'Test $testnum $appveyor_outcome'
                    108:             }
                    109:         " \\
                    110:         "$appveyor_baseurl/api/build/messages"`;
                    111:         print "AppVeyor API result: $appveyor_result\n" if ($appveyor_result);
                    112:     }
                    113: }
                    114: 
                    115: 1;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>