gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnurl] 226/282: ci/tests: Send test results to AppVeyor for status over


From: gnunet
Subject: [gnurl] 226/282: ci/tests: Send test results to AppVeyor for status overview
Date: Wed, 01 Apr 2020 14:31:31 +0200

This is an automated email from the git hooks/post-receive script.

ng0 pushed a commit to branch master
in repository gnurl.

commit c0d8b96f24daf842f87d726d3a9d144e1c0a5a6c
Author: Marc Hoersken <address@hidden>
AuthorDate: Tue Mar 3 12:37:40 2020 +0100

    ci/tests: Send test results to AppVeyor for status overview
    
    Closes #5021
---
 tests/Makefile.am |   2 +-
 tests/appveyor.pm | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 tests/runtests.pl |   7 ++++
 3 files changed, 115 insertions(+), 1 deletion(-)

diff --git a/tests/Makefile.am b/tests/Makefile.am
index 0e0296f91..95ee872b5 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -39,7 +39,7 @@ EXTRA_DIST = ftpserver.pl httpserver.pl secureserver.pl 
runtests.pl           \
  manpage-scan.pl nroff-scan.pl http2-server.pl dictserver.py                  \
  negtelnetserver.py $(SMBDEPS) objnames-test08.sh objnames-test10.sh          \
  objnames.inc disable-scan.pl manpage-syntax.pl error-codes.pl badsymbols.pl  \
- azure.pm
+ azure.pm appveyor.pm
 
 DISTCLEANFILES = configurehelp.pm
 
diff --git a/tests/appveyor.pm b/tests/appveyor.pm
new file mode 100644
index 000000000..abfb18523
--- /dev/null
+++ b/tests/appveyor.pm
@@ -0,0 +1,107 @@
+#***************************************************************************
+#                                  _   _ ____  _
+#  Project                     ___| | | |  _ \| |
+#                             / __| | | | |_) | |
+#                            | (__| |_| |  _ <| |___
+#                             \___|\___/|_| \_\_____|
+#
+# Copyright (C) 2020, Daniel Stenberg, <address@hidden>, et al.
+# Copyright (C) 2020, Marc Hoersken, <address@hidden>
+#
+# 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.haxx.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.
+#
+###########################################################################
+
+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 ($testnum, $testname)=@_;
+    my $appveyor_baseurl="$ENV{'APPVEYOR_API_URL'}";
+    my $appveyor_result=`curl --silent \\
+    --header "Content-Type: application/json" \\
+    --data "
+        {
+            'testName': '$testname',
+            'testFramework': 'runtests.pl',
+            'fileName': 'tests/data/test$testnum',
+            'outcome': 'Running'
+        }
+    " \\
+    "$appveyor_baseurl/api/tests"`;
+    print $appveyor_result;
+    $APPVEYOR_TEST_NAMES{$testnum}=$testname;
+}
+
+sub appveyor_update_test_result {
+    my ($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 < 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 --request PUT \\
+    --header "Content-Type: application/json" \\
+    --data "
+        {
+            'testName': '$testname',
+            'testFramework': 'runtests.pl',
+            'fileName': 'tests/data/test$testnum',
+            'outcome': '$appveyor_outcome',
+            'durationMilliseconds': $appveyor_duration
+        }
+    " \\
+    "$appveyor_baseurl/api/tests"`;
+    print $appveyor_result;
+    if($appveyor_category eq 'Error') {
+        $appveyor_result=`curl --silent \\
+        --header "Content-Type: application/json" \\
+        --data "
+            {
+                'message': '$testname',
+                'category': '$appveyor_category',
+                'details': 'Test $testnum $appveyor_outcome'
+            }
+        " \\
+        "$appveyor_baseurl/api/build/messages"`;
+        print $appveyor_result;
+    }
+}
+
+1;
diff --git a/tests/runtests.pl b/tests/runtests.pl
index bc25dfed3..131aef926 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -112,6 +112,7 @@ require "getpart.pm"; # array functions
 require "valgrind.pm"; # valgrind report parser
 require "ftp.pm";
 require "azure.pm";
+require "appveyor.pm";
 
 my $HOSTIP="127.0.0.1";   # address on which the test server listens
 my $HOST6IP="[::1]";      # address on which the test server listens
@@ -3745,6 +3746,9 @@ sub singletest {
     if(azure_check_environment() && $AZURE_RUN_ID) {
         $AZURE_RESULT_ID = azure_create_test_result($AZURE_RUN_ID, $testnum, 
$testname);
     }
+    elsif(appveyor_check_environment()) {
+        appveyor_create_test_result($testnum, $testname);
+    }
 
     # timestamp starting of test command
     $timetoolini{$testnum} = Time::HiRes::time();
@@ -5543,6 +5547,9 @@ foreach $testnum (@at) {
         $AZURE_RESULT_ID = azure_update_test_result($AZURE_RUN_ID, 
$AZURE_RESULT_ID, $testnum, $error,
                                                     $timeprepini{$testnum}, 
$timevrfyend{$testnum});
     }
+    elsif(appveyor_check_environment()) {
+        appveyor_update_test_result($testnum, $error, $timeprepini{$testnum}, 
$timevrfyend{$testnum});
+    }
 
     if($error < 0) {
         # not a test we can run

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]