Lines Matching full:my
16 my $VERSION = "0.2";
20 my %opt;
21 my %repeat_tests;
22 my %repeats;
23 my %evals;
26 my %default = (
85 my $test_log_start = 0;
87 my $ktest_config = "ktest.conf";
88 my $version;
89 my $have_version = 0;
90 my $machine;
91 my $last_machine;
92 my $ssh_user;
93 my $tmpdir;
94 my $builddir;
95 my $outputdir;
96 my $output_config;
97 my $test_type;
98 my $build_type;
99 my $build_options;
100 my $final_post_ktest;
101 my $pre_ktest;
102 my $post_ktest;
103 my $pre_test;
104 my $pre_test_die;
105 my $post_test;
106 my $pre_build;
107 my $post_build;
108 my $pre_build_die;
109 my $post_build_die;
110 my $reboot_type;
111 my $reboot_script;
112 my $power_cycle;
113 my $reboot;
114 my $reboot_return_code;
115 my $reboot_on_error;
116 my $switch_to_good;
117 my $switch_to_test;
118 my $poweroff_on_error;
119 my $reboot_on_success;
120 my $die_on_failure;
121 my $powercycle_after_reboot;
122 my $poweroff_after_halt;
123 my $max_monitor_wait;
124 my $ssh_exec;
125 my $scp_to_target;
126 my $scp_to_target_install;
127 my $power_off;
128 my $grub_menu;
129 my $last_grub_menu;
130 my $grub_file;
131 my $grub_number;
132 my $grub_reboot;
133 my $grub_bls_get;
134 my $syslinux;
135 my $syslinux_path;
136 my $syslinux_label;
137 my $target;
138 my $make;
139 my $pre_install;
140 my $post_install;
141 my $no_install;
142 my $noclean;
143 my $minconfig;
144 my $start_minconfig;
145 my $start_minconfig_defined;
146 my $output_minconfig;
147 my $minconfig_type;
148 my $use_output_minconfig;
149 my $warnings_file;
150 my $ignore_config;
151 my $ignore_errors;
152 my $addconfig;
153 my $in_bisect = 0;
154 my $bisect_bad_commit = "";
155 my $reverse_bisect;
156 my $bisect_manual;
157 my $bisect_skip;
158 my $bisect_tries;
159 my $config_bisect_good;
160 my $bisect_ret_good;
161 my $bisect_ret_bad;
162 my $bisect_ret_skip;
163 my $bisect_ret_abort;
164 my $bisect_ret_default;
165 my $in_patchcheck = 0;
166 my $run_test;
167 my $buildlog;
168 my $testlog;
169 my $dmesg;
170 my $monitor_fp;
171 my $monitor_pid;
172 my $monitor_cnt = 0;
173 my $sleep_time;
174 my $bisect_sleep_time;
175 my $patchcheck_sleep_time;
176 my $ignore_warnings;
177 my $store_failures;
178 my $store_successes;
179 my $test_name;
180 my $timeout;
181 my $run_timeout;
182 my $connect_timeout;
183 my $config_bisect_exec;
184 my $booted_timeout;
185 my $detect_triplefault;
186 my $console;
187 my $close_console_signal;
188 my $reboot_success_line;
189 my $success_line;
190 my $stop_after_success;
191 my $stop_after_failure;
192 my $stop_test_after;
193 my $build_target;
194 my $target_image;
195 my $checkout;
196 my $localversion;
197 my $iteration = 0;
198 my $successes = 0;
199 my $stty_orig;
200 my $run_command_status = 0;
202 my $bisect_good;
203 my $bisect_bad;
204 my $bisect_type;
205 my $bisect_start;
206 my $bisect_replay;
207 my $bisect_files;
208 my $bisect_reverse;
209 my $bisect_check;
211 my $config_bisect;
212 my $config_bisect_type;
213 my $config_bisect_check;
215 my $patchcheck_type;
216 my $patchcheck_start;
217 my $patchcheck_cherry;
218 my $patchcheck_end;
220 my $build_time;
221 my $install_time;
222 my $reboot_time;
223 my $test_time;
225 my $pwd;
226 my $dirname = $FindBin::Bin;
228 my $mailto;
229 my $mailer;
230 my $mail_path;
231 my $mail_max_size;
232 my $mail_command;
233 my $email_on_error;
234 my $email_when_finished;
235 my $email_when_started;
236 my $email_when_canceled;
238 my $script_start_time = localtime();
242 my $buildonly = 1;
245 my $warnings_ok = 0;
248 my $newconfig = 0;
250 my %entered_configs;
251 my %config_help;
252 my %variable;
256 my %force_config;
259 my $no_reboot = 1;
262 my $reboot_success = 0;
264 my %option_map = (
384 my %used_options;
518 my $d = 0;
521 my $in_die = 0;
524 my $check_build_re = ".*:.*(warning|error|Error):.*";
525 my $utf8_quote = "\\x{e2}\\x{80}(\\x{98}|\\x{99})";
528 my $child_done;
533 my %config_ignore;
536 my %config_set;
541 my %config_off;
544 my @config_off_tmp;
547 my %config_list;
548 my %null_config;
550 my %dependency;
553 my $pass = 1;
557 my %depends;
558 my %depcount;
559 my $iflevel = 0;
560 my @ifdeps;
563 my %read_kconfigs;
566 my %min_configs;
567 my %keep_configs;
568 my %save_configs;
569 my %processed_configs;
570 my %nochange_config;
600 my ($cancel, $prompt) = @_;
602 my $ans;
637 my ($prompt) = @_;
643 my ($prompt) = @_;
649 my ($config) = @_;
650 my $ans;
680 my ($time) = @_;
682 my $hours = 0;
683 my $minutes = 0;
765 my $rtype = $opt{"REBOOT_TYPE"};
791 my ($value, $remove_undef) = @_;
792 my $retval = "";
802 my $begin = $1;
803 my $var = $2;
804 my $end = $3;
839 my ($lvalue, $rvalue, $override, $overrides, $name) = @_;
841 my $prvalue = process_variables($rvalue);
860 my $extra = "";
873 my ($lvalue, $rvalue, $name) = @_;
875 my $prvalue = process_variables($rvalue);
876 my $arr;
889 my ($lvalue, $rvalue) = @_;
900 my ($lval, $cmp, $rval) = @_;
920 my $statement = "$lval $cmp $rval";
921 my $ret = eval $statement;
932 my ($val) = @_;
939 my ($name, $val) = @_;
941 my $c = $d++;
944 my $express = $1;
954 my $OR = "\\|\\|";
955 my $AND = "\\&\\&";
958 my $express = $1;
959 my $op = $2;
973 my $ret = process_compare($1, $2, $3);
989 my $express = $1;
990 my $ret = process_expression($name, $express);
1004 my ($name, $value) = @_;
1007 my $val = process_variables($value, 1);
1008 my $ret = process_expression $name, $val;
1014 my ($config, $current_test_num) = @_;
1016 my $in;
1019 my $name = $config;
1022 my $test_num = $$current_test_num;
1023 my $default = 1;
1024 my $repeat = 1;
1025 my $num_tests_set = 0;
1026 my $skip = 0;
1027 my $rest;
1028 my $line;
1029 my $test_case = 0;
1030 my $if = 0;
1031 my $if_set = 0;
1032 my $override = 0;
1034 my %overrides;
1043 my $type = $1;
1047 my $old_test_num;
1048 my $old_repeat;
1157 my $file = process_variables($1);
1180 my $lvalue = $1;
1181 my $rvalue = $2;
1186 my $val = "$lvalue\[$test_num\]";
1194 my $lvalue = $1;
1195 my $rvalue = $2;
1217 my $val = "$lvalue\[$test_num\]";
1227 my $lvalue = $1;
1228 my $rvalue = $2;
1262 my $ans = <STDIN>;
1268 my ($config) = @_;
1270 my $test_case;
1271 my $test_num = 0;
1286 foreach my $default (keys %default) {
1296 my %not_used;
1299 foreach my $option (keys %opt) {
1300 my $op = $option;
1311 my $s = "s are";
1314 foreach my $option (keys %not_used) {
1325 my ($name, $option, $i) = @_;
1329 my $retval = "";
1330 my $repeated = 0;
1331 my $parent = 0;
1333 foreach my $test (keys %repeat_tests) {
1344 my $start = $1;
1345 my $var = $2;
1346 my $end = $3;
1354 my $o = "$var\[$i\]";
1355 my $parento = "$var\[$parent\]";
1389 my ($name, $option, $i) = @_;
1391 my $option_name = "$name\[$i\]";
1392 my $ev;
1394 my $old_option = $option;
1404 for my $e (@{$ev}) {
1416 my ($name, $option, $i) = @_;
1418 my $prev = "";
1423 my $r = 0;
1441 my ($time) = @_;
1442 my $powercycle = 0;
1445 my $stat = run_ssh("echo check machine status", $connect_timeout);
1486 my $save_ignore_errors = $ignore_errors;
1507 my ($time) = @_;
1517 my $i = $iteration;
1526 my $name;
1546 my $i = $iteration;
1563 my $name = get_test_name;
1564 my $log_file;
1567 my $whence = 2; # End of file
1568 my $log_size = tell LOG;
1569 my $size = $log_size - $test_log_start;
1576 my $pos = - $size;
1600 my ($ptm, $pts) = @_;
1601 my $tmp;
1602 my $TIOCSPTLCK = 0x40045431;
1603 my $TIOCGPTN = 0x80045430;
1623 my ($ptm, $pts) = @_;
1642 my ($ptm) = @_;
1643 my $pts = \*PTSFD;
1644 my $pid;
1671 my ($fp, $pid) = @_;
1707 my ($time, $stop) = @_;
1708 my $full_line = "";
1709 my $line;
1710 my $booted = 0;
1711 my $start_time = time;
1712 my $skip_call_trace = 0;
1713 my $bug = 0;
1714 my $bug_ignored = 0;
1715 my $now;
1773 my ($result, $basedir) = @_;
1774 my @t = localtime;
1775 my $date = sprintf "%04d%02d%02d%02d%02d%02d",
1778 my $type = $build_type;
1783 my $dir = "$machine-$test_type-$type-$result-$date";
1792 my %files = (
1799 while (my ($name, $source) = each(%files)) {
1817 my $i = $iteration;
1825 my $name = "";
1851 my ($command, $redirect, $timeout) = @_;
1852 my $start_time;
1853 my $end_time;
1854 my $dolog = 0;
1855 my $dord = 0;
1856 my $dostdout = 0;
1857 my $pid;
1858 my $command_orig = $command;
1893 my $hit_timeout = 0;
1896 my $fp = \*CMD;
1897 my $line = wait_for_input($fp, $timeout);
1899 my $now = time;
1925 my $delta = $end_time - $start_time;
1947 my ($cmd, $timeout) = @_;
1948 my $cp_exec = $ssh_exec;
1955 my ($src, $dst, $cp_scp) = @_;
1964 my ($src, $dst) = @_;
1966 my $cp_scp = $scp_to_target_install;
1972 my ($src, $dst) = @_;
1974 my $cp_scp = $scp_to_target;
1981 my ($command, $target, $skip, $submenu) = @_;
1990 my $ssh_grub = $ssh_exec;
1996 my $found = 0;
1998 my $submenu_number = 0;
2026 my $command;
2027 my $target;
2028 my $skip;
2029 my $submenu;
2030 my $grub_menu_qt;
2059 my ($fp, $time) = @_;
2060 my $start_time;
2061 my $rin;
2062 my $rout;
2063 my $nr;
2064 my $buf;
2065 my $line;
2066 my $ch;
2133 my ($commit) = @_;
2136 my $sha1 = `git rev-list --max-count=1 $commit`;
2137 my $ret = $?;
2154 my $booted = 0;
2155 my $bug = 0;
2156 my $bug_ignored = 0;
2157 my $skip_call_trace = 0;
2158 my $loops;
2160 my $start_time = time;
2164 my $line;
2165 my $full_line = "";
2172 my $success_start;
2173 my $failure_start;
2174 my $monitor_start = time;
2175 my $done = 0;
2176 my $version_found = 0;
2181 my $time = $stop_after_failure - (time - $failure_start);
2191 my $s = $booted_timeout == 1 ? "" : "s";
2198 my $s = $timeout == 1 ? "" : "s";
2217 my $now = time;
2241 my $now = time;
2285 my $end_time = time;
2308 my ($option) = @_;
2319 my $cp_post_install = eval_kernel_version $post_install;
2336 my $start_time = time;
2339 my $cp_pre_install = eval_kernel_version $pre_install;
2344 my $cp_target = eval_kernel_version $target_image;
2351 my $install_mods = 0;
2369 my $end_time = time;
2377 my $modlib = "/lib/modules/$version";
2378 my $modtar = "ktest-mods.tar.bz2";
2399 my $end_time = time;
2432 my ($line) = @_;
2460 my %warnings_list;
2463 my $save_no_reboot = $no_reboot;
2472 my $warning = process_warning_line $_;
2486 my $warning = process_warning_line $_;
2500 my ($patch) = @_;
2502 my @files = `git show $patch | diffstat -l`;
2504 foreach my $file (@files) {
2521 my $err = $1;
2522 foreach my $file (@files) {
2523 my $fullpath = "$builddir/$file";
2536 my $outconfig = "$output_config.new";
2558 foreach my $config (keys %force_config) {
2568 my @force_list = keys %force_config;
2589 my ($config) = @_;
2606 my ($type) = @_;
2610 my $start_time = time;
2613 my $save_no_reboot = $no_reboot;
2620 my $ret = run_command $pre_build;
2675 my $build_ret = run_command "$make $build_options", $buildlog;
2681 my $ret = run_command $post_build;
2699 my $end_time = time;
2718 my ($i) = @_;
2722 my $name = "";
2754 my $ans = <STDIN>;
2785 my $child_pid;
2786 my $child_exit;
2787 my $line;
2788 my $full_line;
2789 my $bug = 0;
2790 my $bug_ignored = 0;
2792 my $start_time = time;
2839 my $failure_start = time;
2840 my $now;
2860 my $end_time = time;
2908 my ($command) = @_;
2912 my $output = `$command 2>&1`;
2913 my $ret = $?;
2944 my ($type, $buildtype) = @_;
2946 my $failed = 0;
2947 my $result;
2948 my $output;
2949 my $ret;
2995 my ($type) = @_;
2996 my $buildtype = "oldconfig";
3005 my $ret = 1;
3012 for (my $i = 0; $i < $bisect_tries; $i++) {
3014 my $t = $i + 1;
3042 my $tmp_log = "$tmpdir/ktest_bisect_log";
3049 my ($i) = @_;
3051 my $result;
3057 my $good = $bisect_good;
3058 my $bad = $bisect_bad;
3059 my $type = $bisect_type;
3060 my $start = $bisect_start;
3061 my $replay = $bisect_replay;
3062 my $start_files = $bisect_files;
3087 my $bisect_start_file = "$builddir/.git/BISECT_START";
3089 my $check = $bisect_check;
3090 my $do_check = defined($check) && $check ne "0";
3112 my $head = get_sha1("HEAD");
3162 my $test;
3181 my ($hash, $config) = @_;
3201 my ($config) = @_;
3207 my ($config) = @_;
3209 my $arr = $dependency{$config};
3214 my @deps = @{$arr};
3216 foreach my $dep (@{$arr}) {
3225 my ($pc, $file) = @_;
3227 my %configs = %{$pc};
3233 foreach my $config (keys %configs) {
3240 my ($name, $pc) = @_;
3250 my ($type) = @_;
3252 my $ret = run_bisect_test $type, "oldconfig";
3262 my ($good, $bad) = @_;
3263 my $diffexec = "diff -u";
3275 my ($good, $bad, $last_result) = @_;
3276 my $reset = "";
3277 my $cmd;
3278 my $ret;
3311 my ($i) = @_;
3313 my $good_config;
3314 my $bad_config;
3316 my $type = $config_bisect_type;
3317 my $ret;
3337 my @locations = (
3342 foreach my $loc (@locations) {
3358 my %good_configs;
3359 my %bad_configs;
3360 my %tmp_configs;
3409 my $last_run = "";
3436 my ($i) = @_;
3443 my $start = $patchcheck_start;
3445 my $cherry = $patchcheck_cherry;
3450 my $end = "HEAD";
3461 my $type = $patchcheck_type;
3476 my @list;
3497 foreach my $l (@list) {
3501 my $save_clean = $noclean;
3502 my %ignored_warnings;
3505 foreach my $sha1 (split /\s+/, $ignore_warnings) {
3511 foreach my $item (@list) {
3512 my $sha1 = $item;
3544 my $failed = 0;
3567 my ($config, $dep) = @_;
3585 my ($kconfig) = @_;
3587 my $state = "NONE";
3588 my $config;
3589 my @kconfigs;
3591 my $cont = 0;
3592 my $line;
3627 for (my $i = 0; $i < $iflevel; $i++) {
3644 my $deps = $1;
3649 my @deps = split /[^a-zA-Z0-9_]+/, $deps;
3677 my $arch;
3698 my $kconfig = "$builddir/arch/$arch/Kconfig";
3701 my $orig = $arch;
3716 my @configs = @_;
3721 foreach my $config (@configs) {
3728 my ($config) = @_;
3736 my ($dep) = @_;
3738 my $kconfig = chomp_config $dep;
3746 my $valid = "A-Za-z_0-9";
3748 my @configs;
3752 my $conf = "CONFIG_" . $1;
3766 my ($config) = @_;
3768 my $found;
3781 my $kconfig = chomp_config $config;
3785 my @parents = get_depends $config;
3786 foreach my $parent (@parents) {
3800 my %configs = %min_configs;
3820 my ($i) = @_;
3822 my $type = $minconfig_type;
3853 my $temp_config = "$tmpdir/temp_config";
3859 my $save_minconfig = $minconfig;
3885 my @config_keys = keys %min_configs;
3888 foreach my $config (@config_keys) {
3889 my $kconfig = chomp_config $config;
3897 foreach my $config (@config_keys) {
3900 my $file = $ignore_config;
3922 my $done = 0;
3923 my $take_two = 0;
3926 my $config;
3927 my $found;
3932 my @test_configs = keys %min_configs;
3939 my $reset = 1;
3940 for (my $i = 0; $i < $#test_configs; $i++) {
3947 my $config = shift @test_configs;
3959 foreach my $config (@test_configs) {
3989 my $failed = 0;
4014 foreach my $config (keys %save_configs) {
4029 my %configs;
4031 my @config_keys = keys %min_configs;
4032 foreach my $config (@config_keys) {
4042 foreach my $config (keys %keep_configs) {
4045 foreach my $config (keys %min_configs) {
4063 my ($i) = @_;
4095 my ($option) = @_;
4105 my ($name, $i) = @_;
4107 my $option = "$name\[$i\]";
4113 foreach my $test (keys %repeat_tests) {
4131 my ($name, $i) = @_;
4133 my $option = __set_test_option($name, $i);
4140 my ($mailer) = @_;
4142 my @paths = split /:/, $ENV{PATH};
4147 foreach my $path (@paths) {
4157 my ($subject, $message, $file) = @_;
4167 my $header_file = "$tmpdir/header";
4197 my $ret = run_command $mail_command;
4220 my $name = get_test_name;
4274 my @new_configs = keys %entered_configs;
4278 foreach my $config (@new_configs) {
4294 for (my $i = 0, my $repeat = 1; $i <= $opt{"NUM_TESTS"}; $i += $repeat) {
4307 foreach my $option (sort keys %opt) {
4321 for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) {
4338 my $makecmd = set_test_option("MAKE_CMD", $i);
4353 foreach my $opt (keys %option_map) {
4366 my $name = get_test_name;
4408 my $run_type = $build_type;
4426 my $installme = "";
4429 my $name = "";
4444 my $ret = run_command $pre_test;
4456 my $min = $minconfig;
4508 my $failed = 0;
4528 my $cp_final_post_ktest = eval_kernel_version $final_post_ktest;