Lines Matching full:str

37 SAFE_INSTALL: str = path.join(src_dir, "scripts/safe-install.sh");
40 EXEC_INSTALL_MODE: str = "-Dm755";
44 MANPAGE_INSTALL_MODE: str = "-Dm644";
47 OS: str = platform.os;
49 DESTDIR: str = str(config["destdir"]);
51 EXECPREFIX: str = str(config["execprefix"]);
52 EXECSUFFIX: str = str(config["execsuffix"]);
60 fn exe_name(name: str) -> str
62 temp: str = EXECPREFIX +~ name +~ EXECSUFFIX;
72 fn default_exe_name(name: str) -> str
82 fn lib_name(name: str) -> str
84 ext: str = if OS == "Windows" { ".lib"; } else { ".a"; };
88 BC_BIN: str = exe_name("bc");
89 DC_BIN: str = exe_name("dc");
90 LIBRARY: str = lib_name("libbcl");
92 BC_MANPAGE: str = EXECPREFIX +~ "bc" +~ EXECSUFFIX +~ ".1";
93 DC_MANPAGE: str = EXECPREFIX +~ "dc" +~ EXECSUFFIX +~ ".1";
94 BCL_MANPAGE: str = "bcl.3";
96 BCL_HEADER: str = "bcl.h";
97 BCL_HEADER_PATH: str = path.join(src_dir, path.join("include", BCL_HEADER));
98 PC_FILE: str = "bcl.pc";
106 fn prompt(name: str) -> str
110 ret: str =
117 str(uint(bool(config[name +~ "/default_tty_mode"])));
127 HEADERS: []str = find_src_ext("include", "h");
133 BC_ENABLED: str = str(uint(BUILD_MODE == @both || BUILD_MODE == @bc));
134 DC_ENABLED: str = str(uint(BUILD_MODE == @both || BUILD_MODE == @dc));
135 LIBRARY_ENABLED: str = str(uint(BUILD_MODE == @library));
137 EXTRA_MATH_ENABLED: str = str(uint(bool(config["extra_math"])));
140 HISTORY_ENABLED: str = str(uint(HISTORY != @none));
141 EDITLINE_ENABLED: str = str(uint(HISTORY == @editline));
142 READLINE_ENABLED: str = str(uint(HISTORY == @readline));
144 NLS_ENABLED: str =
151 str(uint(sym(config["locales"]) != @none));
154 BUILD_TYPE: str =
161 t: str = if EXTRA_MATH_ENABLED != "0" { ""; } else { "E"; } +~
168 OPTIMIZE: str = str(config["optimization"]);
170 VALGRIND_ARGS: []str = @[
181 CC: str = language.compiler;
184 CFLAGS_OPT: str = if OPTIMIZE == "" { "0"; } else { OPTIMIZE; };
187 DEFOPT: str = compiler_db["opt.define"];
190 OPTOPT: str = compiler_db["opt.optimization"] +~ CFLAGS_OPT;
193 OBJOUTOPT: str = compiler_db["opt.objout"];
194 EXEOUTOPT: str = compiler_db["opt.exeout"];
198 OBJOPT: str = compiler_db["opt.obj"];
201 INCOPT: str = compiler_db["opt.include"] +~ path.join(src_dir, "include");
203 COVERAGE_CFLAGS: []str =
209 MAINEXEC: str =
219 MAINEXEC_FLAGS: []str = @[ DEFOPT +~ "MAINEXEC=" +~ MAINEXEC ];
222 BC_DEF: str = if LIBRARY_ENABLED == "0" { BC_ENABLED; } else { "1"; };
223 DC_DEF: str = if LIBRARY_ENABLED == "0" { DC_ENABLED; } else { "1"; };
225 CFLAGS1: []str = config_list["cflags"] +~ @[ OPTOPT, INCOPT ] +~
227 CFLAGS2: []str = @[
231 DEFOPT +~ "EXECPREFIX=" +~ str(config["execprefix"]),
232 DEFOPT +~ "BC_NUM_KARATSUBA_LEN=" +~ str(num(config["karatsuba_len"])),
239 DEFOPT +~ "BC_ENABLE_MEMCHECK=" +~ str(uint(bool(config["memcheck"]))),
240 DEFOPT +~ "BC_ENABLE_AFL=" +~ str(uint(bool(config["afl"]))),
241 DEFOPT +~ "BC_ENABLE_OSSFUZZ=" +~ str(uint(bool(config["ossfuzz"]))),
243 str(uint(bool(config["bc/default_banner"]))),
245 str(uint(bool(config["bc/default_sigint_reset"]))),
247 str(uint(bool(config["bc/default_tty_mode"]))),
250 str(uint(bool(config["bc/default_expr_exit"]))),
252 str(uint(bool(config["bc/default_digit_clamp"]))),
254 str(uint(bool(config["dc/default_sigint_reset"]))),
256 str(uint(bool(config["dc/default_tty_mode"]))),
259 str(uint(bool(config["dc/default_expr_exit"]))),
261 str(uint(bool(config["dc/default_digit_clamp"]))),
263 CFLAGS: []str = CFLAGS1 +~ CFLAGS2;
265 LDFLAGS: []str = config_list["ldflags"];
267 COMMON_C_FILES: []str = @[
275 EXEC_C_FILES: []str = @[
287 BC_C_FILES: []str = @[
293 DC_C_FILES: []str = @[
299 HISTORY_C_FILES: []str = @[
303 LIBRARY_C_FILES: []str = @[
307 GEN_HEADER1: str =
311 GEN_HEADER2: str = ". DO NOT MODIFY. ***\n\n";
313 GEN_LABEL1: str = "const char *";
314 GEN_LABEL2: str = " = \"";
315 GEN_LABEL3: str = "\";\n\n";
316 GEN_NAME1: str = "const char ";
317 GEN_NAME2: str = "[] = {\n";
319 GEN_LABEL_EXTERN1: str = "extern const char *";
320 GEN_LABEL_EXTERN2: str = ";\n\n";
321 GEN_NAME_EXTERN1: str = "extern const char ";
322 GEN_NAME_EXTERN2: str = "[];\n\n";
324 GEN_IFDEF1: str = "#if ";
325 GEN_IFDEF2: str = "\n";
326 GEN_ENDIF1: str = "#endif // ";
327 GEN_ENDIF2: str = "\n";
329 GEN_EX_START: str = "{{ A H N HN }}";
330 GEN_EX_END: str = "{{ end }}";
354 input: str,
355 output: str,
357 name: str,
358 label: str,
359 def: str,
363 in: str = io.read_file(input);
494 val: str = str(in[i]) +~ ",";
534 fn c2o(c_file: str) -> str
536 o_file: str = c_file +~ (if OS == "Windows" { ".obj"; } else { ".o"; });
562 txt_file: str,
563 name: str,
564 label: str,
565 def: str,
567 ) -> str
569 c_file: str = txt_file +~ ".c";
583 str(config["strgen_name"]), str(config["strgen_label"]),
584 str(config["strgen_define"]),
598 fn exe(name: str, o_files: []str) -> void
612 fn ln(name: str, exec: str) -> void
635 fn lib(name: str, o_files: []str) -> void
651 name: str,
677 name: str,
684 str(exitcode) +~ "\n");
689 name: str,
691 exp_path: str,
700 error("Test \"" +~ name +~ "\" failed\n" +~ str(res.stderr));
705 bin: str,
706 testdir: str,
707 src_testdir: str,
711 all_file: str = path.join(src_testdir, "all.txt");
712 tests: []str = io.read_file(all_file).split("\n");
715 extra_required: []str = io.read_file(extra_path).split("\n");
732 halt: str = str(config["halt"]);
734 name: str = path.basename(tgt_name);
735 testdir: str = path.dirname(tgt_name);
736 calc: str = path.basename(testdir);
738 test_file: str = tgt_name +~ ".txt";
739 test_result_file: str = tgt_name +~ "_results.txt";
741 src_test_file: str = path.join(src_dir, test_file);
742 src_test_result_file: str = path.join(src_dir, test_result_file);
744 actual_test_file: str =
754 script_name: str = name +~ "." +~ calc;
756 scriptdir: str = path.join(testdir, "scripts");
757 src_scriptdir: str = path.join(src_dir, scriptdir);
758 src_script_name: str = path.join(src_scriptdir, script_name);
769 exp_result_file: str =
772 tmpfile: str = path.tmp(calc +~ "_test_result");
793 bin: str,
794 testdir: str,
795 src_testdir: str,
799 scriptdir: str = path.join(testdir, "scripts");
800 src_scriptdir: str = path.join(src_testdir, "scripts");
801 all_file: str = path.join(src_scriptdir, "all.txt");
802 tests: []str = io.read_file(all_file).split("\n");
819 halt: str = str(config["halt"]);
821 name: str = path.basename(tgt_name);
822 testdir: str = path.dirname(tgt_name);
823 testdir2: str = path.dirname(testdir);
824 calc: str = path.basename(testdir2);
826 test_file: str = tgt_name;
827 test_file_dir: str = path.dirname(tgt_name);
828 test_file_name: str = path.basename(tgt_name, "." +~ calc);
829 test_result_file: str = path.join(test_file_dir,
832 src_test_file: str = path.join(src_dir, test_file);
833 src_test_result_file: str = path.join(src_dir, test_result_file);
835 exp_result_file: str =
838 tmpfile: str = path.tmp(calc +~ "_script_test_result");
850 root_testdir: str = path.join(src_dir, "tests");
893 bin: str,
894 testdir: str,
895 name: str
900 name: str = path.basename(tgt_name);
901 testdir: str = path.dirname(tgt_name);
902 calc: str = path.basename(testdir);
904 halt: str = if name == "bc" { "halt"; } else { "q"; };
906 test_file: str = tgt_name +~ ".txt";
907 test_result_file: str = tgt_name +~ "_results.txt";
909 src_test_file: str = path.join(src_dir, test_file);
910 src_test_result_file: str = path.join(src_dir, test_result_file);
920 bin: str,
921 testdir: str,
922 src_testdir: str,
925 calc: str = path.basename(testdir);
942 bin: str,
943 testdir: str,
944 src_testdir: str,
947 calc: str = path.basename(testdir);
949 read_call: str = if calc == "bc" { "read()"; } else { "?"; };
950 read_expr: str =
959 read_multiple: str =
980 testdir: str = path.dirname(tgt_name);
981 src_testdir: str = path.join(src_dir, testdir);
983 test_file: str = tgt_name +~ ".txt";
984 src_test_file: str = path.join(src_dir, test_file);
986 read_call: str = str(config["read_call"]);
988 lines: []str = io.read_file(src_test_file).split("\n");
1008 testdir: str = path.dirname(tgt_name);
1010 test_file: str = tgt_name +~ ".txt";
1014 read_call: str = str(config["read_call"]);
1016 exp_path: str = path.tmp("read_multiple_results");
1025 << @(str(config["read_multiple"]));
1033 testdir: str = path.dirname(tgt_name);
1034 src_testdir: str = path.join(src_dir, testdir);
1036 test_file: str = tgt_name +~ ".txt";
1037 src_test_file: str = path.join(src_dir, test_file);
1041 read_call: str = str(config["read_call"]);
1043 lines: []str = io.read_file(src_test_file).split("\n");
1062 read_call: str = str(config["read_call"]);
1073 read_call: str = str(config["read_call"]);
1083 fn run_error_lines_test(name: str) -> void
1085 file: str = path.join(src_dir, name);
1087 lines: []str = io.read_file(file).split("\n");
1104 bin: str,
1105 testdir: str,
1106 src_testdir: str,
1109 calc: str = path.basename(testdir);
1114 halt: str = str(config["halt"]);
1125 testdir: str = path.dirname(tgt_name);
1126 halt: str = str(config["halt"]);
1144 str(res.exitcode) +~ ")");
1147 output: str = str(res.stderr);
1166 errors_dir: str = path.join(testdir, "errors");
1179 errors_dir: str = path.dirname(tgt_name);
1180 testdir: str = path.dirname(errors_dir);
1181 calc: str = path.basename(testdir);
1183 halt: str = str(config["halt"]);
1209 name: str,
1213 testdir: str = path.dirname(name);
1214 redefine_exp: str = path.join(testdir, "redefine_exp.txt");
1219 OTHER_LINE_LEN_RESULTS_NAME: str = "line_length_test_results.txt";
1220 OTHER_LINE_LEN70_RESULTS_NAME: str = "line_length70_test_results.txt";
1221 OTHER_MATHLIB_SCALE_RESULTS_NAME: str = "mathlib_scale_results.txt";
1224 bin: str,
1225 testdir: str,
1226 src_testdir: str,
1230 calc: str = path.basename(testdir);
1237 halt: str = str(config["halt"]) +~ "\n";
1261 if str(res.stdout) != "2"
1270 env.set env.str("BC_ENV_ARGS", " '-l' '' -q")
1280 env.set env.str("BC_ENV_ARGS", " '-l' '' -q")
1288 redefine_exp: str = path.join(testdir, "redefine_exp.txt");
1323 testdir: str = path.dirname(tgt_name);
1324 src_testdir: str = path.join(src_dir, testdir);
1328 << @(str(config["halt"]));
1360 testdir: str = path.dirname(tgt_name);
1361 src_testdir: str = path.join(src_dir, testdir);
1364 src_test_file: str = path.join(src_testdir, "misc1.txt");
1365 src_test_results_file: str = path.join(src_testdir,
1376 testdir: str = path.dirname(tgt_name);
1377 src_testdir: str = path.join(src_dir, testdir);
1379 src_test_file: str = path.join(src_testdir, "errors/05.txt");
1388 testdir: str = path.dirname(tgt_name);
1389 src_testdir: str = path.join(src_dir, testdir);
1392 src_test_file: str = path.join(src_testdir, "strings.txt");
1393 src_test_results_file: str = path.join(src_testdir,
1406 testdir: str = path.dirname(tgt_name);
1407 src_testdir: str = path.join(src_dir, testdir);
1409 src_test_file: str = path.join(src_testdir, "errors/16.txt");
1420 testdir: str = path.dirname(tgt_name);
1421 src_testdir: str = path.join(src_dir, testdir);
1423 src_test_file: str = path.join(src_testdir, "errors/04.txt");
1441 env.set env.str("DC_ENV_ARGS", "'-x'"), env.str("DC_EXPR_EXIT", "1")
1451 env.set env.str("DC_ENV_ARGS", "'-x'"), env.str("DC_EXPR_EXIT", "1")
1461 testdir: str = path.dirname(tgt_name);
1462 results: str = tgt_name +~ ".txt";
1478 testdir: str = path.dirname(tgt_name);
1479 results: str = tgt_name +~ ".txt";
1496 other_tests_results: []str = config_list["other_tests_results"];
1510 env.set env.str(str(config["var"]), "80")
1512 testdir: str = path.dirname(tgt_name);
1514 other_tests: []str = config_list["other_tests"];
1525 env.set env.str(str(config["var"]), "2147483647")
1527 testdir: str = path.dirname(tgt_name);
1529 other_tests: []str = config_list["other_tests"];
1540 testdir: str = path.dirname(tgt_name);
1541 src_testdir: str = path.join(src_dir, testdir);
1543 input_file: str = path.join(src_testdir, "add.txt");
1544 input: str = io.read_file(input_file);
1545 results_file: str = path.join(src_testdir, "add_results.txt");
1546 results: str = io.read_file(results_file);
1548 output_file: str = path.join(testdir, "expr_file_args.txt");
1557 -e @(str(config["halt"]));
1564 env.set env.str(str(config["var"]), "2147483647")
1566 testdir: str = path.dirname(tgt_name);
1567 src_testdir: str = path.join(src_dir, testdir);
1569 input_file: str = path.join(src_testdir, "add.txt");
1570 input: str = io.read_file(input_file);
1571 results_file: str = path.join(src_testdir, "add_results.txt");
1572 results: str = io.read_file(results_file);
1574 output_file: str = path.join(testdir, "files.txt");
1582 $input_file $input_file << @(str(config["halt"]));
1590 env.set env.str(str(config["var"]), "62")
1592 testdir: str = path.dirname(tgt_name);
1594 other_tests: []str = config_list["other_tests"];
1605 env.set env.str(str(config["var"]), "62")
1607 testdir: str = path.dirname(tgt_name);
1608 results: str = tgt_name +~ ".txt";
1617 other_tests: []str = config_list["other_tests"];
1627 halt: str = str(config["halt"]);
1647 testdir: str = path.dirname(tgt_name);
1648 calc: str = path.basename(testdir);
1650 expected_file: str = tgt_name +~ ".txt";
1652 expected: str = "0.1\n-0.1\n1.1\n-1.1\n0.1\n-0.1\n";
1659 data: str =
1684 other_tests: []str = config_list["other_tests"];
1687 -e @(str(config["halt"]));
1694 other_tests: []str = config_list["other_tests"];
1697 -e @(str(config["halt"]));
1704 res := $ %(config_list["args"]) -u -e @(str(config["halt"]));
1711 res := $ %(config_list["args"]) --uniform -e @(str(config["halt"]));
1753 testdir: str = path.dirname(tgt_name);
1754 calc: str = path.basename(testdir);
1758 output: str =
1768 output_file: str = tgt_name +~ ".txt";
1775 data: str =
1799 args: []str =
1812 long_args: []str =
1835 testdir: str = path.dirname(tgt_name);
1836 results_file: str = path.join(testdir,
1846 testdir: str = path.dirname(tgt_name);
1847 results_file: str = path.join(testdir,
1858 env.set env.str("BC_ENV_ARGS", "-l")
1860 testdir: str = path.dirname(tgt_name);
1861 results_file: str = path.join(testdir,
1873 env.set env.str("BC_ENV_ARGS", "-l")
1875 testdir: str = path.dirname(tgt_name);
1876 results_file: str = path.join(testdir,
1887 env.set env.str("BC_ENV_ARGS", "-S100")
1889 testdir: str = path.dirname(tgt_name);
1890 results_file: str = path.join(testdir,
1902 env.set env.str("BC_ENV_ARGS", "--scale=100")
1904 testdir: str = path.dirname(tgt_name);
1905 results_file: str = path.join(testdir,
1920 if str(res.stdout) == "" || str(res.stdout) == "\n"
1929 testdir: str = path.dirname(tgt_name);
1930 calc: str = path.basename(testdir);
1932 scale: str = if calc == "bc" { "scale\n"; } else { "K\n"; };
1940 seed: str = if calc == "bc" { "seed\n"; } else { "J\n"; };
1950 testdir: str = path.dirname(tgt_name);
1973 bin: str,
1974 testdir: str,
1975 src_testdir: str,
1978 timeconst: str = path.join(testdir, "scripts/timeconst.bc");
1994 test sym(path.join(timeconst, str(i)))
1996 idx: str = path.basename(tgt_name) +~ "\n";
1997 file: str = path.join(src_dir, path.dirname(tgt_name));
2020 bin: str,
2021 testdir: str,
2022 src_testdir: str,
2025 calc: str = path.basename(testdir);
2027 src_test_scriptdir: str = path.dirname(src_testdir);
2037 len: usize = usize(str(len_res.stdout));
2041 test sym(calc +~ "/history/" +~ str(i)): bin
2043 name: str = tgt_name;
2044 parts: []str = name.split("/");
2046 calc: str = parts[0];
2047 idx: str= parts[2];
2049 src_testdir: str = path.join(src_dir, "tests");
2061 fn exe_tests(name: str) -> void
2063 bin: str = exe_name(name);
2065 testdir: str = path.join("tests", name);
2066 src_testdir: str = path.join(src_dir, testdir);
2068 halt: str = if name == "bc" { "halt"; } else { "q"; };
2069 gen_options: []str = if name == "bc" { @[ "-lq" ]; };
2070 options: []str = if name == "bc" { @[ "-lqc" ]; } else { @[ "-xc" ]; };
2072 other_num: str = "10000000000000000000000000000000000000000000000000" +~
2074 other_num70: str = "10000000000000000000000000000000000000000000000" +~
2077 other_tests: []str =
2087 other_tests_results: []str = @[ other_num, other_num70 ];
2089 var: str = name.toupper() +~ "_LINE_LENGTH";
2091 script_options: []str =
2101 error_options: []str = if name == "bc" { @[ "-ls" ]; } else { @[ "-x" ]; };
2103 args: []str =
2154 fn get_bindir() -> str
2156 temp: str = str(config["bindir"]);
2158 bindir: str =
2161 path.join(str(config["prefix"]), "bin");
2176 fn get_libdir() -> str
2178 temp: str = str(config["libdir"]);
2180 libdir: str =
2183 path.join(str(config["prefix"]), "lib");
2198 fn get_includedir() -> str
2200 temp: str = str(config["includedir"]);
2202 includedir: str =
2205 path.join(str(config["prefix"]), "include");
2220 fn get_pc_path() -> str
2222 pc_path: str =
2223 if str(config["pc_path"]) == ""
2227 str(res.stdout);
2231 str(config["pc_path"]);
2242 fn get_datarootdir() -> str
2244 temp: str = str(config["datarootdir"]);
2246 datarootdir: str =
2249 path.join(str(config["prefix"]), "share");
2264 fn get_datadir() -> str
2266 temp: str = str(config["datadir"]);
2268 datadir: str =
2286 fn get_mandir() -> str
2288 temp: str = str(config["mandir"]);
2290 mandir: str =
2308 fn get_man1dir() -> str
2310 temp: str = str(config["man1dir"]);
2312 man1dir: str =
2330 fn get_man3dir() -> str
2332 temp: str = str(config["man3dir"]);
2334 man3dir: str =