File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / curl / tests / appveyor.pm
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Jun 3 10:01:16 2020 UTC (5 years ago) by misho
Branches: curl, MAIN
CVS tags: v7_70_0p4, HEAD
curl

    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>