summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--tests/io/argv.py2
-rw-r--r--unix/main.c8
2 files changed, 10 insertions, 0 deletions
diff --git a/tests/io/argv.py b/tests/io/argv.py
new file mode 100644
index 0000000000..a13f2cad21
--- /dev/null
+++ b/tests/io/argv.py
@@ -0,0 +1,2 @@
+import sys
+print(sys.argv)
diff --git a/unix/main.c b/unix/main.c
index b39ed4f2c7..08567c04dc 100644
--- a/unix/main.c
+++ b/unix/main.c
@@ -216,6 +216,10 @@ int main(int argc, char **argv) {
qstr_init();
rt_init();
+ mp_obj_t m_sys = mp_obj_new_module(qstr_from_str_static("sys"));
+ mp_obj_t py_argv = mp_obj_new_list(0, NULL);
+ rt_store_attr(m_sys, qstr_from_str_static("argv"), py_argv);
+
rt_store_name(qstr_from_str_static("test"), test_obj_new(42));
rt_store_name(qstr_from_str_static("open"), (mp_obj_t)&mp_builtin_open_obj);
rawsocket_init();
@@ -254,7 +258,11 @@ int main(int argc, char **argv) {
return usage();
}
} else {
+ for (int i = a; i < argc; i++) {
+ rt_list_append(py_argv, MP_OBJ_NEW_QSTR(qstr_from_strn_copy(argv[i], strlen(argv[i]))));
+ }
do_file(argv[a]);
+ break;
}
}
}