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>