1() = evalfile ("inc.sl"); 2 3testing_feature ("argv processing"); 4 5define play_games_width_argv () 6{ 7 try 8 { 9 eval ("__argc = 1;"); 10 failed ("__argc read-only test"); 11 } 12 catch ReadOnlyError; 13 14 try 15 { 16 eval ("__argv = [\"a\", \"b\"];"); 17 failed ("__argv = ... test"); 18 } 19 catch ForbiddenError; 20 21 try 22 { 23 if (length (__argv)) 24 eval ("__argv[0] = \"a\";"); 25 } 26 catch ReadOnlyError: failed ("__argv[0] is read-only"); 27 28 loop (20) 29 { 30 variable x = __argv; 31 } 32} 33play_games_width_argv (); 34 35define test_argv (argv) 36{ 37 __set_argc_argv (argv); 38 variable argc = length (argv); 39 if (__argc != argc) 40 failed ("Expected __argc to be %d, found %d", argc, __argc); 41 if (length (argv) != __argc) 42 failed ("__argv does not have the expected length, found %d", length(__argv)); 43 if (not _eqs (__argv, argv)) 44 failed ("__argv did not have the expected value"); 45 46 play_games_width_argv (); 47} 48test_argv (String_Type[0]); 49test_argv (["a0"]); 50test_argv (["a0", "b0"]); 51test_argv (["a0", "b0", "c0"]); 52 53print ("Ok\n"); 54 55exit (0); 56 57