Example #1
0
 private function runTest($metadata, Template $template, $memcheck = false)
 {
     $test_args = $template->hasArgs();
     foreach ($this->args as $key => $arg) {
         // Prepare for next template
         $template->clear();
         $template->replace('funcname', @$metadata['function']);
         $template->replace('classname', @$metadata['class']);
         $template->replace('methodname', @$metadata['method']);
         // For argument concatenation
         $template->replace('args2', empty($arg) ? $arg : $arg . ',');
         // For argument without concatenation
         $template->replace('args', $arg);
         if ($test_args) {
             printf("- %s - Args: %s\n", $metadata['name'], $arg);
         } else {
             printf("- %s:\n", $metadata['name']);
         }
         if ($memcheck) {
             $ret = $this->memcheck($metadata['name'], $template->getSource());
         } else {
             $ret = $this->execute($metadata['name'], $template->getSource());
             switch ($ret) {
                 case 139:
                     /* signal 11 */
                     printf(" SIGSEGV\n", $ret);
                     break;
                 default:
                     printf(" Exit status = %d\n", $ret);
                     break;
             }
             if (!$test_args) {
                 break;
             }
         }
     }
 }