Skip to content
Snippets Groups Projects
Commit d792d9e4 authored by Damien George's avatar Damien George
Browse files

unix: Make extra-coverage function callable from Python scripts.

This allows the output of the extra-coverage tests to be checked using
the normal run-tests script.
parent d3b32cae
No related branches found
No related tags found
No related merge requests found
...@@ -35,8 +35,6 @@ script: ...@@ -35,8 +35,6 @@ script:
- make -C unix CC=gcc-4.7 coverage - make -C unix CC=gcc-4.7 coverage
- (cd tests && MICROPY_CPYTHON3=python3.4 MICROPY_MICROPYTHON=../unix/micropython_coverage ./run-tests) - (cd tests && MICROPY_CPYTHON3=python3.4 MICROPY_MICROPYTHON=../unix/micropython_coverage ./run-tests)
- (cd tests && MICROPY_CPYTHON3=python3.4 MICROPY_MICROPYTHON=../unix/micropython_coverage ./run-tests --emit native) - (cd tests && MICROPY_CPYTHON3=python3.4 MICROPY_MICROPYTHON=../unix/micropython_coverage ./run-tests --emit native)
# TODO the output of this extra coverage test is not checked
- unix/micropython_coverage --coverage
after_success: after_success:
- (cd unix && coveralls --root .. --build-root . --gcov $(which gcov-4.7) --gcov-options '\-o build-coverage/' --include py --include extmod) - (cd unix && coveralls --root .. --build-root . --gcov $(which gcov-4.7) --gcov-options '\-o build-coverage/' --include py --include extmod)
......
try:
extra_coverage
except NameError:
print("SKIP")
import sys
sys.exit()
extra_coverage()
ame__
__name__ path argv version
version_info implementation platform byteorder
maxsize exit stdin stdout
stderr exc_info print_exception
ementation
...@@ -7,13 +7,11 @@ ...@@ -7,13 +7,11 @@
#if defined(MICROPY_UNIX_COVERAGE) #if defined(MICROPY_UNIX_COVERAGE)
// function to run extra tests for things that can't be checked by scripts // function to run extra tests for things that can't be checked by scripts
void run_extra_coverage_tests(void); STATIC mp_obj_t extra_coverage(void) {
void run_extra_coverage_tests(void) {
// repl autocomplete // repl autocomplete
{ {
const char *str; const char *str;
mp_uint_t len = mp_repl_autocomplete("__", 2, &mp_plat_print, &str); mp_uint_t len = mp_repl_autocomplete("__n", 3, &mp_plat_print, &str);
printf("%.*s\n", (int)len, str); printf("%.*s\n", (int)len, str);
mp_store_global(MP_QSTR_sys, mp_import_name(MP_QSTR_sys, mp_const_none, MP_OBJ_NEW_SMALL_INT(0))); mp_store_global(MP_QSTR_sys, mp_import_name(MP_QSTR_sys, mp_const_none, MP_OBJ_NEW_SMALL_INT(0)));
...@@ -21,6 +19,9 @@ void run_extra_coverage_tests(void) { ...@@ -21,6 +19,9 @@ void run_extra_coverage_tests(void) {
len = mp_repl_autocomplete("sys.impl", 8, &mp_plat_print, &str); len = mp_repl_autocomplete("sys.impl", 8, &mp_plat_print, &str);
printf("%.*s\n", (int)len, str); printf("%.*s\n", (int)len, str);
} }
return mp_const_none;
} }
MP_DEFINE_CONST_FUN_OBJ_0(extra_coverage_obj, extra_coverage);
#endif #endif
...@@ -356,6 +356,13 @@ int main(int argc, char **argv) { ...@@ -356,6 +356,13 @@ int main(int argc, char **argv) {
mp_obj_list_init(mp_sys_argv, 0); mp_obj_list_init(mp_sys_argv, 0);
#if defined(MICROPY_UNIX_COVERAGE)
{
MP_DECLARE_CONST_FUN_OBJ(extra_coverage_obj);
mp_store_global(QSTR_FROM_STR_STATIC("extra_coverage"), (mp_obj_t)&extra_coverage_obj);
}
#endif
// Here is some example code to create a class and instance of that class. // Here is some example code to create a class and instance of that class.
// First is the Python, then the C code. // First is the Python, then the C code.
// //
...@@ -434,12 +441,6 @@ int main(int argc, char **argv) { ...@@ -434,12 +441,6 @@ int main(int argc, char **argv) {
MP_STATE_VM(mp_optimise_value) = 0; MP_STATE_VM(mp_optimise_value) = 0;
for (char *p = argv[a] + 1; *p && *p == 'O'; p++, MP_STATE_VM(mp_optimise_value)++); for (char *p = argv[a] + 1; *p && *p == 'O'; p++, MP_STATE_VM(mp_optimise_value)++);
} }
#if defined(MICROPY_UNIX_COVERAGE)
} else if (strcmp(argv[a], "--coverage") == 0) {
void run_extra_coverage_tests(void);
run_extra_coverage_tests();
ret = 0;
#endif
} else { } else {
return usage(argv); return usage(argv);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment