Annotation of embedaddon/curl/tests/appveyor.pm, revision 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>