!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: nginx/1.23.4. PHP/5.6.40-65+ubuntu20.04.1+deb.sury.org+1 

uname -a: Linux foro-restaurado-2 5.15.0-1040-oracle #46-Ubuntu SMP Fri Jul 14 21:47:21 UTC 2023
aarch64
 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/home/scripts/pba/phc-read-only/test/framework/lib/   drwxrwxr-x
Free 83.26 GB of 96.73 GB (86.07%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     test.php (8.56 KB)      -rw-rw-r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/*
 * phc -- the open source PHP compiler
 * See doc/license/README.license for licensing information
 *
 * Base class for tests
 */

require_once ("labels.php");
abstract class 
Test
{
    function 
__construct ()
    {
        
$this->successes 0;
        
$this->failures 0;
        
$this->skipped 0;
        
$this->timeouts 0;
        
$this->max_time 20;
        
$this->total 0;
        
$this->solo_tests 0;
        
$this->missing_dependencies = array ();
    }

    function 
get_name ()
    {
        return 
get_class($this);
    }

    function 
ready_progress_bar ($num_files)
    {
        global 
$opt_no_progress_bar;
        
$this->num_files $num_files;
        if (!
$opt_no_progress_bar)
        {
            
// this line is irrelevent, since it's reset below 
            
$this->progress_bar = new Console_ProgressBar (
                
$this->get_name()."%bar% Testing (%fraction%)",
                
"#""-"80$num_files); 
        }
        
$this->update_count(0);
    }

    function 
homogenize_output ($string)
    {
        return 
$string;
    }

    function 
check_global_prerequisites ()
    {
        global 
$php;
        return 
check_for_program ($php);
    }

    function 
check_prerequisites ()
    {
        return 
true;
    }

    function 
check_test_prerequisites ($subject)
    {
        return 
true;
    }

    function 
get_dependent_test_names ()
    {
        return array ();
    }

    
// we dont want this to be overridden
    
function get_builtin_dependent_test_names ()
    {
        if (!isset(
$this->dependencies))
            return array ();

        return (array) (
$this->dependencies);
    }

    function 
calculate_all_dependencies ()
    {
        global 
$tests;
        
$dependencies $this->get_builtin_dependent_test_names () 
                + 
$this->get_dependent_test_names ();

        
# we want deep dependencies here, so get the parent dependencies too
        
$all_dependencies = array ();
        foreach (
$dependencies as $dependency)
        {
            
$all_dependencies[] = $dependency;
            foreach (
$tests as $test# find it in the set of tests
            
{
                if (
$test->get_name () == $dependency)
                {
                    foreach (
$test->get_all_dependencies() as $new_dependency)
                        
$all_dependencies[] = $new_dependency;
                    break;
                }
            }
        }
        
$this->all_dependencies $all_dependencies;
    }

    function 
get_all_dependencies ()
    {
        if (isset(
$this->all_dependencies))
            return 
$this->all_dependencies;

        
$this->calculate_all_dependencies ();
        return 
$this->all_dependencies;
    }

    function 
passed_test_dependencies ($subject)
    {
        
$shallow_dependencies $this->get_all_dependencies ();

        
# we want deep dependencies here, so get the parent dependencies too
        
$dependencies = array ();
        global 
$tests;
        while (
$shallow_dependencies)
        {
            
$dependency array_pop ($shallow_dependencies);
            if (
in_array ($dependency$dependencies))
                continue;

            
$dependencies[] = $dependency;
            foreach (
$tests as $test# find it in the set of tests
            
{
                if (
$test->get_name () == $dependency)
                {
                    foreach (
$test->get_all_dependencies() as $new_dependency)
                        
$shallow_dependencies[] = $new_dependency;
                    break;
                }
            }
        }

        foreach (
$dependencies as $dependency)
        {
            
$depend read_dependency ($dependency$subject);
            if (
$depend == "Fail")
                return 
false;
            elseif (
$depend == "missing")
                
$this->missing_dependencies[$subject] = $dependency;
        }
        return 
true;
    }

    abstract function 
run_test ($subject);
    abstract function 
get_test_subjects ();

    function 
print_numbered ()
    {
        
$files $this->get_test_subjects();
        
$i 1;
        foreach (
$files as $file)
        {
            print 
"$i$file\n";
            
$i++;
        }
    }

    function 
run()
    {
        
// do this first so that the progress bar is ready
        
$files $this->get_test_subjects ();
        
$this->ready_progress_bar (count ($files));


        if (!
$this->check_prerequisites () || !$this->check_global_prerequisites ())
        {
            
$this->mark_skipped ("All""Test prerequisties failed");
            
$this->finish_test ();
            return 
false;
        }

        
// end early if specified
        
global $opt_quick;
        
$count 0;

        foreach (
$files as $subject)
        {
            if (!
$this->check_test_prerequisites ($subject))
            {
                
$this->mark_skipped ($subject"Individual prerequsite failed");
            }
            elseif (!
$this->passed_test_dependencies ($subject))
            {
                
$this->mark_skipped ($subject"Test failed dependency");
            }
            elseif (
$this->check_exception ($subject))
            {
                
$this->mark_skipped ($subject"Test excepted");
            }
            else
            {
                
$this->run_test ($subject);
            }
            
$count ++;

            if (
$opt_quick && $count >= 10)
                break;
        }

        
$this->finish_test ();
    }

    function 
mark_success ($subject)
    {
        
write_dependencies ($this->get_name (), $subjecttrue);

        
$this->successes++;
        
$this->total++;
        
$this->update_count ();
        
log_status ("success"$this->get_name(), $subject"");
    }

    function 
mark_timeout ($subject$commands$outs$errs$exits)
    {
        
$this->timeouts++;
        
$this->total++;
        
$this->update_count ();
        
log_status ("timeout"$this->get_name(), $subject"");
    }

    function 
mark_skipped ($subject$reason)
    {
        if (
$subject == "All")
        {
            
$this->skipped += count($this->get_test_subjects ());
            
$this->total $this->skipped;
        }
        else
        {
            
$this->skipped++;
            
$this->total++;
        }
        
write_dependencies ($this->get_name (), $subjectfalse);
        
log_status ("skipped"$this->get_name(), $subject$reason);
        
$this->update_count ();
    }

    function 
mark_failure ($subject$commands$outs "Not relevent"$errs "Not relevent"$exits "Not relevent"$reason "TODO - no reason given")
    {
        
write_dependencies ($this->get_name (), $subjectfalse);

        
log_failure ($this->get_name(), $subject$commands$outs$errs$exits, isset ($this->missing_dependencies[$subject]) ? $this->missing_dependencies[$subject] : NULL$reason);
        
log_status ("failure"$this->get_name(), $subject$reason);
        
$this->erase_progress_bar();

        
$this->display_progress_bar ();

        
$this->failures++;
        
$this->total++;
        
$this->update_count ();
    }

    function 
is_successful ()
    {
        return (
$this->failures == 0);
    }

    function 
is_completely_skipped ()
    {
        return (
$this->failures == and $this->successes == and $this->timeouts == and $this->skipped >= 0);
    }

    function 
get_appropriate_colour ()
    {
        if (
$this->is_completely_skipped ())
            return 
blue_string ();
        elseif (
$this->is_successful ())
            return 
green_string ();
        else
            return 
red_string ();
    }

    function 
get_appropriate_phrase ()
    {
        if (
$this->is_completely_skipped ())
            return 
"Skipped";
        elseif (
$this->is_successful ())
            return 
"Success";
        else
            return 
"Failure";
    }

    function 
get_triple_string ($finished false)
    {
        
$reset reset_string ();
        
$passed sprintf ("%5s"$this->successes." P");
        
$failed sprintf ("%5s"$this->failures." F");
        
$timedout sprintf ("%5s"$this->timeouts ." T");
        
$skipped sprintf ("%5s"$this->skipped." S");
        if (
$finished)
        {
            
$colour $this->get_appropriate_colour ();
            return 
"$colour$passed$failed$timedout$skipped$reset";
        }
        else
        {
            
$blue blue_string ();
            
$green green_string ();
            
$red red_string ();
            
$reset reset_string ();
            return 
"$green$passed$reset$red$failed$reset$blue$timedout$reset$blue$skipped$reset";
        }
    }

    function 
update_count ()
    {
        global 
$opt_no_progress_bar;
        if (! 
$opt_no_progress_bar)
        {
            
# check for divide by zero
            
$target_num $this->num_files;
            if (
$target_num == 0$target_num 1;

            
$this->erase_progress_bar ();
            
$this->progress_bar->reset(
                    
"{$this->get_name()} %bar% %fraction%: {$this->get_triple_string ()}"
                    
"#""-"112$target_num); # i dont understand how this number works, but it includes control chars
            
$this->progress_bar->update($this->total);
        }
    }

    function 
erase_progress_bar ()
    {
        global 
$opt_no_progress_bar;
        if (! 
$opt_no_progress_bar)
        {
            
$this->progress_bar->erase();
        }
    }

    function 
display_progress_bar ()
    {
        global 
$opt_no_progress_bar;
        if (! 
$opt_no_progress_bar)
        {
            
$this->progress_bar->display($this->total);
        }
    }

    function 
finish_test ()
    {
        
$this->erase_progress_bar();

        
$red red_string ();
        
$blue blue_string ();
        
$green green_string ();
        
$reset reset_string ();

        
$test $this->get_name();
        
$triple $this->get_triple_string (true);

        
$phrase $this->get_appropriate_phrase ();
        
$colour $this->get_appropriate_colour ();
        
$word "$colour$phrase:$reset";

        
// a color or a reset involves 6 characters, but gets displayed as zero.
        // Those 6 need to be taken into account for sprintf
        
$string sprintf("%-27s %20s %41s\n"$test$word$triple);
        print 
"$string";
        
write_status ("results"strip_colour ($string));
    }

    
// return true if the subject is marked as an exception
    
function check_exception ($subject)
    {
        global 
$exceptions;

        if (!isset (
$exceptions[$subject]))
            return 
false;

        foreach (
$exceptions[$subject] as $exception)
        {
            if (
preg_match ("/$exception/"$this->get_name ()))
                return 
true;
        }
        return 
false;
    }
}


?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by HackingTool | HackingTool | Generation time: 0.0047 ]--