<p>George Joseph <strong>merged</strong> this change.</p><p><a href="https://gerrit.asterisk.org/9388">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins2: Verified
  George Joseph: Looks good to me, approved; Approved for Submit

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">CI: Move gates into source repo<br><br>Change-Id: If028ede5f3b127fa274c63ce166bc04ad7c1e5db<br>---<br>M tests/CI/buildAsterisk.sh<br>A tests/CI/gateTestGroups.json<br>A tests/CI/gates.jenkinsfile<br>M tests/CI/runTestsuite.sh<br>4 files changed, 244 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/tests/CI/buildAsterisk.sh b/tests/CI/buildAsterisk.sh</span><br><span>index fce81fc..1e424fa 100755</span><br><span>--- a/tests/CI/buildAsterisk.sh</span><br><span>+++ b/tests/CI/buildAsterisk.sh</span><br><span>@@ -38,7 +38,7 @@</span><br><span> common_config_args+=" --enable-dev-mode"</span><br><span> export WGET_EXTRA_ARGS="--quiet"</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-runner ./configure ${common_config_args} CCACHE_DISABLE=1 >tests/CI/output/configure.txt</span><br><span style="color: hsl(120, 100%, 40%);">+runner ./configure ${common_config_args} >tests/CI/output/configure.txt</span><br><span> </span><br><span> runner ${MAKE} menuselect.makeopts</span><br><span> </span><br><span>diff --git a/tests/CI/gateTestGroups.json b/tests/CI/gateTestGroups.json</span><br><span>new file mode 100644</span><br><span>index 0000000..8c0774a</span><br><span>--- /dev/null</span><br><span>+++ b/tests/CI/gateTestGroups.json</span><br><span>@@ -0,0 +1,47 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[</span><br><span style="color: hsl(120, 100%, 40%);">+      {</span><br><span style="color: hsl(120, 100%, 40%);">+             "name": "ari1",</span><br><span style="color: hsl(120, 100%, 40%);">+           "dir": "tests/CI/output/ari1",</span><br><span style="color: hsl(120, 100%, 40%);">+            "testcmd": "--test-regex=tests/rest_api/[Ca-d]"</span><br><span style="color: hsl(120, 100%, 40%);">+   },</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+             "name": "ari2",</span><br><span style="color: hsl(120, 100%, 40%);">+           "dir": "tests/CI/output/ari2",</span><br><span style="color: hsl(120, 100%, 40%);">+            "testcmd": "--test-regex=tests/rest_api/[e-z]"</span><br><span style="color: hsl(120, 100%, 40%);">+    },</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+             "name": "pjsip1",</span><br><span style="color: hsl(120, 100%, 40%);">+         "dir": "tests/CI/output/pjsip1",</span><br><span style="color: hsl(120, 100%, 40%);">+          "testcmd": "--test-regex=tests/channels/pjsip/[a-f]"</span><br><span style="color: hsl(120, 100%, 40%);">+      },</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+             "name": "pjsip2",</span><br><span style="color: hsl(120, 100%, 40%);">+         "dir": "tests/CI/output/pjsip2",</span><br><span style="color: hsl(120, 100%, 40%);">+          "testcmd": "--test-regex=tests/channels/pjsip/[g-r]"</span><br><span style="color: hsl(120, 100%, 40%);">+      },</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+             "name": "pjsip3",</span><br><span style="color: hsl(120, 100%, 40%);">+         "dir": "tests/CI/output/pjsip3",</span><br><span style="color: hsl(120, 100%, 40%);">+          "testcmd": "--test-regex=tests/channels/pjsip/[s-z]"</span><br><span style="color: hsl(120, 100%, 40%);">+      },</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+             "name": "sip1",</span><br><span style="color: hsl(120, 100%, 40%);">+           "dir": "tests/CI/output/sip1",</span><br><span style="color: hsl(120, 100%, 40%);">+            "testcmd": "--test-regex=tests/channels/SIP/[Sa-r]"</span><br><span style="color: hsl(120, 100%, 40%);">+       },</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+             "name": "sip2",</span><br><span style="color: hsl(120, 100%, 40%);">+           "dir": "tests/CI/output/sip2",</span><br><span style="color: hsl(120, 100%, 40%);">+            "testcmd": "--test-regex=tests/channels/SIP/[s-z]"</span><br><span style="color: hsl(120, 100%, 40%);">+        },</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+             "name": "iax2_local",</span><br><span style="color: hsl(120, 100%, 40%);">+             "dir": "tests/CI/output/iax2_local",</span><br><span style="color: hsl(120, 100%, 40%);">+              "testcmd": " -t tests/channels/iax2 -t tests/channels/local"</span><br><span style="color: hsl(120, 100%, 40%);">+      },</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+             "name": "extmwi",</span><br><span style="color: hsl(120, 100%, 40%);">+         "dir": "tests/CI/output/extmwi",</span><br><span style="color: hsl(120, 100%, 40%);">+          "testcmd": "--test-regex=tests/channels/pjsip/.*mwi"</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+]</span><br><span>diff --git a/tests/CI/gates.jenkinsfile b/tests/CI/gates.jenkinsfile</span><br><span>new file mode 100644</span><br><span>index 0000000..768cf8b</span><br><span>--- /dev/null</span><br><span>+++ b/tests/CI/gates.jenkinsfile</span><br><span>@@ -0,0 +1,196 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This pipeline is the "template" for the Asterisk Gate Tests multi-branch</span><br><span style="color: hsl(120, 100%, 40%);">+ * parent job.  Jenkins will automatically scan the branches in the "asterisk"</span><br><span style="color: hsl(120, 100%, 40%);">+ * or "Security-asterisk" projects in Gerrit and automatically create a branch-</span><br><span style="color: hsl(120, 100%, 40%);">+ * specific job for each branch it finds this file in.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file starts as a declarative pipeline because with a declarative</span><br><span style="color: hsl(120, 100%, 40%);">+ * pipeline, you can define the trigger in the pipeline file.  This keeps</span><br><span style="color: hsl(120, 100%, 40%);">+ * everything in one place.  We transition to scripted pipeline later on because</span><br><span style="color: hsl(120, 100%, 40%);">+ * we need to dynamically determine which docker image we're going to use and</span><br><span style="color: hsl(120, 100%, 40%);">+ * you can't do that in a delcarative pipeline.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+pipeline {</span><br><span style="color: hsl(120, 100%, 40%);">+        triggers {</span><br><span style="color: hsl(120, 100%, 40%);">+            /*</span><br><span style="color: hsl(120, 100%, 40%);">+             * This trigger will match either the "asterisk" or "Security-asterisk"</span><br><span style="color: hsl(120, 100%, 40%);">+            * projects.  The branch is taken from the branch this job was created</span><br><span style="color: hsl(120, 100%, 40%);">+                 * for.</span><br><span style="color: hsl(120, 100%, 40%);">+                */</span><br><span style="color: hsl(120, 100%, 40%);">+           gerrit customUrl: '',</span><br><span style="color: hsl(120, 100%, 40%);">+                 commentTextParameterMode: 'PLAIN',</span><br><span style="color: hsl(120, 100%, 40%);">+                    commitMessageParameterMode: 'PLAIN',</span><br><span style="color: hsl(120, 100%, 40%);">+                  gerritBuildSuccessfulVerifiedValue: 2,</span><br><span style="color: hsl(120, 100%, 40%);">+                        gerritBuildFailedVerifiedValue: -1,</span><br><span style="color: hsl(120, 100%, 40%);">+                   gerritBuildUnstableVerifiedValue: -1,</span><br><span style="color: hsl(120, 100%, 40%);">+                 gerritProjects: [</span><br><span style="color: hsl(120, 100%, 40%);">+                             [branches: [[compareType: 'PLAIN', pattern: "${BRANCH_NAME}"]],</span><br><span style="color: hsl(120, 100%, 40%);">+                                     compareType: 'REG_EXP',</span><br><span style="color: hsl(120, 100%, 40%);">+                                       disableStrictForbiddenFileVerification: false,</span><br><span style="color: hsl(120, 100%, 40%);">+                                        pattern: '^(Security-)?asterisk.*'</span><br><span style="color: hsl(120, 100%, 40%);">+                            ]</span><br><span style="color: hsl(120, 100%, 40%);">+                     ],</span><br><span style="color: hsl(120, 100%, 40%);">+                    silentMode: false,</span><br><span style="color: hsl(120, 100%, 40%);">+                    triggerOnEvents: [</span><br><span style="color: hsl(120, 100%, 40%);">+                            commentAddedContains('^regate$'),</span><br><span style="color: hsl(120, 100%, 40%);">+                             commentAdded(commentAddedTriggerApprovalValue: '+2', verdictCategory: 'Code-Review'),</span><br><span style="color: hsl(120, 100%, 40%);">+                 ],</span><br><span style="color: hsl(120, 100%, 40%);">+                    skipVote: [</span><br><span style="color: hsl(120, 100%, 40%);">+                           onFailed: false,</span><br><span style="color: hsl(120, 100%, 40%);">+                              onNotBuilt: true,</span><br><span style="color: hsl(120, 100%, 40%);">+                             onSuccessful: false,</span><br><span style="color: hsl(120, 100%, 40%);">+                          onUnstable: false</span><br><span style="color: hsl(120, 100%, 40%);">+                     ]</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+     agent {</span><br><span style="color: hsl(120, 100%, 40%);">+               /* All of the stages need to be performed on a docker host */</span><br><span style="color: hsl(120, 100%, 40%);">+         label "swdev-docker"</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span style="color: hsl(120, 100%, 40%);">+     stages {</span><br><span style="color: hsl(120, 100%, 40%);">+              stage ("->") {</span><br><span style="color: hsl(120, 100%, 40%);">+                   /*</span><br><span style="color: hsl(120, 100%, 40%);">+                     * Jenkins will try to automatically rebuild this job when</span><br><span style="color: hsl(120, 100%, 40%);">+                     * the jenkinsfile changes but since this job is dependent on</span><br><span style="color: hsl(120, 100%, 40%);">+                  * Gerrit, we really don't want to do anything in that case.</span><br><span style="color: hsl(120, 100%, 40%);">+                       */</span><br><span style="color: hsl(120, 100%, 40%);">+                   when {</span><br><span style="color: hsl(120, 100%, 40%);">+                                not { environment name: 'GERRIT_CHANGE_NUMBER', value: '' }</span><br><span style="color: hsl(120, 100%, 40%);">+                   }</span><br><span style="color: hsl(120, 100%, 40%);">+                     steps {</span><br><span style="color: hsl(120, 100%, 40%);">+                               /* Here's where we switch to scripted pipeline */</span><br><span style="color: hsl(120, 100%, 40%);">+                         script {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      stage ("Checkout") {</span><br><span style="color: hsl(120, 100%, 40%);">+                                                /*</span><br><span style="color: hsl(120, 100%, 40%);">+                                             * Jenkins has already automatically checked out the base branch</span><br><span style="color: hsl(120, 100%, 40%);">+                                               * for this change but we now need to check out the change itself</span><br><span style="color: hsl(120, 100%, 40%);">+                                              * and rebase it on the current base branch.  If the rebase fails,</span><br><span style="color: hsl(120, 100%, 40%);">+                                             * that's an indication to the user that they'll need to sort their</span><br><span style="color: hsl(120, 100%, 40%);">+                                            * change out.</span><br><span style="color: hsl(120, 100%, 40%);">+                                                 *</span><br><span style="color: hsl(120, 100%, 40%);">+                                             * The Gerrit Trigger provides all the URLs and refspecs to</span><br><span style="color: hsl(120, 100%, 40%);">+                                            * check out the change.</span><br><span style="color: hsl(120, 100%, 40%);">+                                               */</span><br><span style="color: hsl(120, 100%, 40%);">+                                           checkout scm: [$class: 'GitSCM',</span><br><span style="color: hsl(120, 100%, 40%);">+                                                      branches: [[name: env.GERRIT_BRANCH ]],</span><br><span style="color: hsl(120, 100%, 40%);">+                                                       extensions: [</span><br><span style="color: hsl(120, 100%, 40%);">+                                                         [$class: 'CleanBeforeCheckout'],</span><br><span style="color: hsl(120, 100%, 40%);">+                                                              [$class: 'PreBuildMerge', options: [</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                  mergeRemote: env.GERRIT_NAME,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                 mergeTarget: env.GERRIT_BRANCH ]</span><br><span style="color: hsl(120, 100%, 40%);">+                                                              ],</span><br><span style="color: hsl(120, 100%, 40%);">+                                                            [$class: 'CloneOption',</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                       noTags: true,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                 depth: 10,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                    honorRefspec: true,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                   shallow: true</span><br><span style="color: hsl(120, 100%, 40%);">+                                                         ],</span><br><span style="color: hsl(120, 100%, 40%);">+                                                            [$class: 'BuildChooserSetting',</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                       buildChooser: [$class: 'GerritTriggerBuildChooser']</span><br><span style="color: hsl(120, 100%, 40%);">+                                                           ]</span><br><span style="color: hsl(120, 100%, 40%);">+                                                     ],</span><br><span style="color: hsl(120, 100%, 40%);">+                                                    userRemoteConfigs: [</span><br><span style="color: hsl(120, 100%, 40%);">+                                                          [name: env.GERRIT_NAME, refspec: env.GERRIT_REFSPEC, url: env.GIT_URL ]</span><br><span style="color: hsl(120, 100%, 40%);">+                                                       ]</span><br><span style="color: hsl(120, 100%, 40%);">+                                             ]</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                                   def images = env.DOCKER_IMAGES.split(' ')</span><br><span style="color: hsl(120, 100%, 40%);">+                                     def r = currentBuild.startTimeInMillis % images.length</span><br><span style="color: hsl(120, 100%, 40%);">+                                        def ri = images[(int)r]</span><br><span style="color: hsl(120, 100%, 40%);">+                                       def randomImage = env.DOCKER_REGISTRY + "/" + ri</span><br><span style="color: hsl(120, 100%, 40%);">+                                    def dockerOptions = "-v /srv/jenkins:/srv/jenkins:rw -v /srv/cache:/srv/cache:rw --entrypoint=''"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                                 stage ("Build") {</span><br><span style="color: hsl(120, 100%, 40%);">+                                           docker.image(randomImage).inside(dockerOptions + " --name ${BUILD_TAG}-build") {</span><br><span style="color: hsl(120, 100%, 40%);">+                                                    echo 'Building..'</span><br><span style="color: hsl(120, 100%, 40%);">+                                                     sh './tests/CI/buildAsterisk.sh'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                                                    archiveArtifacts allowEmptyArchive: true, defaultExcludes: false, fingerprint: false,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                         artifacts: "tests/CI/output/*"</span><br><span style="color: hsl(120, 100%, 40%);">+                                              }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                                   def testGroups = readJSON file: "tests/CI/gateTestGroups.json"</span><br><span style="color: hsl(120, 100%, 40%);">+                                      def parallelTasks = [ : ]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                                   for (def testGroup in testGroups) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                           /*</span><br><span style="color: hsl(120, 100%, 40%);">+                                             * Because each task is a Groovy closure, we need to</span><br><span style="color: hsl(120, 100%, 40%);">+                                           * keep local references to some variables.</span><br><span style="color: hsl(120, 100%, 40%);">+                                            */</span><br><span style="color: hsl(120, 100%, 40%);">+                                           def groupName = testGroup.name</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                                              parallelTasks[groupName] = {</span><br><span style="color: hsl(120, 100%, 40%);">+                                                  stage (groupName) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                                           def groupDir = testGroup.dir</span><br><span style="color: hsl(120, 100%, 40%);">+                                                          def groupTestcmd = testGroup.testcmd</span><br><span style="color: hsl(120, 100%, 40%);">+                                                          def testsuiteUrl = env.GIT_URL.replaceAll(/${GERRIT_PROJECT}$/, "testsuite")</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                                                              docker.image(randomImage).inside("${dockerOptions} --name ${BUILD_TAG}-${groupName}") {</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                   lock("${JOB_NAME}.${NODE_NAME}.installer") {</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                                sh 'sudo ./tests/CI/installAsterisk.sh'</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                       }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                   checkout scm: [$class: 'GitSCM',</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                              branches: [[name: "${BRANCH_NAME}"]],</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                                       extensions: [</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                                         [$class: 'CleanBeforeCheckout'],</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                                              [$class: 'RelativeTargetDirectory', relativeTargetDir: groupDir],</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                                             [$class: 'CloneOption',</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                                                       noTags: true,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                                                 depth: 10,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                                                    honorRefspec: true,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                                                   shallow: true</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                                         ],</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                                    ],</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                                    userRemoteConfigs: [[name: env.GERRIT_NAME, url: testsuiteUrl]]</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                               ]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                   sh "tests/CI/runTestsuite.sh --testsuite-dir='${groupDir}' --test-command='${groupTestcmd}'"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                      archiveArtifacts allowEmptyArchive: true, defaultExcludes: false, fingerprint: true,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                          artifacts: "${groupDir}**"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                        junit testResults: "${groupDir}",</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                           healthScaleFactor: 1.0,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                               keepLongStdio: true</span><br><span style="color: hsl(120, 100%, 40%);">+                                                           }</span><br><span style="color: hsl(120, 100%, 40%);">+                                                     }</span><br><span style="color: hsl(120, 100%, 40%);">+                                             }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     parallel parallelTasks</span><br><span style="color: hsl(120, 100%, 40%);">+                                }</span><br><span style="color: hsl(120, 100%, 40%);">+                     }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+     post {</span><br><span style="color: hsl(120, 100%, 40%);">+                always {</span><br><span style="color: hsl(120, 100%, 40%);">+                      sh "sudo make distclean || : "</span><br><span style="color: hsl(120, 100%, 40%);">+                      sh "sudo rm -rf tests/CI/output || : "</span><br><span style="color: hsl(120, 100%, 40%);">+              }</span><br><span style="color: hsl(120, 100%, 40%);">+             /*</span><br><span style="color: hsl(120, 100%, 40%);">+             * The Gerrit Trigger will automatically post the "Verified" results back</span><br><span style="color: hsl(120, 100%, 40%);">+            * to Gerrit but the verification publisher publishes extra stuff in the</span><br><span style="color: hsl(120, 100%, 40%);">+               * "Code Review" section of the review.</span><br><span style="color: hsl(120, 100%, 40%);">+              */</span><br><span style="color: hsl(120, 100%, 40%);">+           success {</span><br><span style="color: hsl(120, 100%, 40%);">+                     gerritverificationpublisher verifyStatusCategory: 'Passed',</span><br><span style="color: hsl(120, 100%, 40%);">+                           verifyStatusURL: '', verifyStatusComment: 'OK',</span><br><span style="color: hsl(120, 100%, 40%);">+                               verifyStatusName: 'Jenkins2', verifyStatusReporter: '',</span><br><span style="color: hsl(120, 100%, 40%);">+                               verifyStatusRerun: 'regate'</span><br><span style="color: hsl(120, 100%, 40%);">+           }</span><br><span style="color: hsl(120, 100%, 40%);">+             failure {</span><br><span style="color: hsl(120, 100%, 40%);">+                     gerritverificationpublisher verifyStatusCategory: 'Failed',</span><br><span style="color: hsl(120, 100%, 40%);">+                           verifyStatusURL: '', verifyStatusComment: 'You\'re really screwed',</span><br><span style="color: hsl(120, 100%, 40%);">+                               verifyStatusName: 'Jenkins2', verifyStatusReporter: '',</span><br><span style="color: hsl(120, 100%, 40%);">+                               verifyStatusRerun: 'regate'</span><br><span style="color: hsl(120, 100%, 40%);">+           }</span><br><span style="color: hsl(120, 100%, 40%);">+             unstable {</span><br><span style="color: hsl(120, 100%, 40%);">+                    gerritverificationpublisher verifyStatusCategory: 'Failed',</span><br><span style="color: hsl(120, 100%, 40%);">+                           verifyStatusURL: '', verifyStatusComment: 'You\'re screwed',</span><br><span style="color: hsl(120, 100%, 40%);">+                              verifyStatusName: 'Jenkins2', verifyStatusReporter: '',</span><br><span style="color: hsl(120, 100%, 40%);">+                               verifyStatusRerun: 'regate'</span><br><span style="color: hsl(120, 100%, 40%);">+           }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span>diff --git a/tests/CI/runTestsuite.sh b/tests/CI/runTestsuite.sh</span><br><span>index c96b9a4..26b0934 100755</span><br><span>--- a/tests/CI/runTestsuite.sh</span><br><span>+++ b/tests/CI/runTestsuite.sh</span><br><span>@@ -11,8 +11,6 @@</span><br><span>        sudo chown jenkins:users asterisk-test-suite-report.xml</span><br><span> fi</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-runner ${CIDIR}/fixTestResults.py asterisk-test-suite-report.xml asterisk-test-suite-report.xml</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> if [ -f core* ] ; then</span><br><span>   echo "*** Found a core file after running unit tests ***"</span><br><span>  sudo /var/lib/asterisk/scripts/ast_coredumper --no-default-search core*</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/9388">change 9388</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/9388"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: 15 </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: If028ede5f3b127fa274c63ce166bc04ad7c1e5db </div>
<div style="display:none"> Gerrit-Change-Number: 9388 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins2 </div>