import os from waftools.pebble_test import clar import sh def rocky_clar(ctx, **kwargs): if ctx.variant == 'test_rocky_emx': kwargs["sources_ant_glob"] += " applib-targets/emscripten/emscripten_jerry_port.c" jerry_uses = ['emscripten_jerry_api', 'jerry_port_includes'] else: kwargs["sources_ant_glob"] += " src/fw/applib/rockyjs/jerry_port.c" jerry_uses = ['jerry_port_includes', 'jerry_core', 'jerry_libm'] kwargs["use"] = jerry_uses + (kwargs["use"] if "use" in kwargs else []) jerry_defines = ['CAPABILITY_HAS_JAVASCRIPT=1', 'CAPABILITY_JAVASCRIPT_BYTECODE_VERSION=1', 'JMEM_STATS=1'] kwargs["defines"] = jerry_defines + kwargs.get("defines", []) kwargs["defines"].extend(ctx.env.test_image_defines) clar(ctx, **kwargs) def build(ctx): if ctx.env.NOJS: return rocky_clar(ctx, sources_ant_glob = " tests/fakes/fake_applib_resource.c" " src/fw/applib/rockyjs/api/rocky_api_global.c" " src/fw/applib/rockyjs/api/rocky_api_errors.c" " src/fw/applib/rockyjs/api/rocky_api_util.c", test_sources_ant_glob = "test_rocky_api_global.c") rocky_clar(ctx, sources_ant_glob = " tests/fakes/fake_applib_resource.c" " src/fw/applib/rockyjs/api/rocky_api_global.c" " src/fw/applib/rockyjs/api/rocky_api_graphics.c" " src/fw/applib/rockyjs/api/rocky_api_graphics_color.c" " src/fw/applib/rockyjs/api/rocky_api_graphics_text.c" " src/fw/applib/rockyjs/api/rocky_api_errors.c" " src/fw/applib/rockyjs/api/rocky_api_util.c" " src/fw/applib/rockyjs/api/rocky_api_util_args.c", test_sources_ant_glob = "test_rocky_api_graphics.c") rocky_clar(ctx, sources_ant_glob = " tests/fakes/fake_applib_resource.c" " src/fw/applib/rockyjs/api/rocky_api_global.c" " src/fw/applib/rockyjs/api/rocky_api_graphics.c" " src/fw/applib/rockyjs/api/rocky_api_graphics_color.c" " src/fw/applib/rockyjs/api/rocky_api_errors.c" " src/fw/applib/rockyjs/api/rocky_api_util.c" " src/fw/applib/rockyjs/api/rocky_api_util_args.c", test_sources_ant_glob = "test_rocky_api_graphics_color.c") rocky_clar(ctx, sources_ant_glob = " tests/fakes/fake_applib_resource.c" " src/fw/applib/graphics/gtypes.c" " src/fw/applib/rockyjs/api/rocky_api_global.c" " src/fw/applib/rockyjs/api/rocky_api_graphics.c" " src/fw/applib/rockyjs/api/rocky_api_graphics_path2d.c" " src/fw/applib/rockyjs/api/rocky_api_errors.c" " src/fw/applib/rockyjs/api/rocky_api_util.c" " src/fw/applib/rockyjs/api/rocky_api_util_args.c", test_sources_ant_glob = "test_rocky_api_graphics_path2d.c") rocky_clar(ctx, sources_ant_glob = " tests/fakes/fake_applib_resource.c" " src/fw/applib/graphics/gpath.c" " src/fw/applib/graphics/graphics_circle.c" " src/fw/applib/graphics/graphics.c" " src/fw/applib/graphics/bitblt.c" " src/fw/applib/graphics/8_bit/bitblt_private.c" " src/fw/applib/graphics/8_bit/framebuffer.c" " src/fw/applib/graphics/framebuffer.c" " src/fw/applib/graphics/graphics_private_raw.c" " src/fw/applib/graphics/graphics_private_raw_mask.c" " src/fw/applib/graphics/gbitmap.c" " src/fw/applib/graphics/gtypes.c" " src/fw/applib/graphics/gcolor_definitions.c" " src/fw/applib/graphics/graphics_line.c" " src/fw/applib/graphics/graphics_private.c" " src/fw/applib/rockyjs/api/rocky_api_global.c" " src/fw/applib/rockyjs/api/rocky_api_graphics.c" " src/fw/applib/rockyjs/api/rocky_api_graphics_color.c" " src/fw/applib/rockyjs/api/rocky_api_graphics_path2d.c" " src/fw/applib/rockyjs/api/rocky_api_errors.c" " src/fw/applib/rockyjs/api/rocky_api_util.c" " src/fw/applib/rockyjs/api/rocky_api_util_args.c", test_sources_ant_glob = "test_rocky_api_graphics_rendering.c" ) rocky_clar(ctx, sources_ant_glob = " tests/fakes/fake_applib_resource.c" " src/fw/applib/rockyjs/api/rocky_api_global.c" " src/fw/applib/rockyjs/api/rocky_api_tickservice.c" " src/fw/applib/rockyjs/api/rocky_api_errors.c" " src/fw/applib/rockyjs/api/rocky_api_util.c", test_sources_ant_glob = "test_rocky_api_tickservice.c") rocky_clar(ctx, sources_ant_glob = " src/fw/applib/rockyjs/api/rocky_api_global.c" " src/fw/applib/rockyjs/api/rocky_api_preferences.c" " src/fw/applib/rockyjs/api/rocky_api_errors.c" " src/fw/applib/rockyjs/api/rocky_api_util.c", test_sources_ant_glob = "test_rocky_api_preferences.c") rocky_clar(ctx, sources_ant_glob = " src/fw/util/dict.c" " tests/fakes/fake_events.c" " src/fw/applib/rockyjs/api/rocky_api_global.c" " src/fw/applib/rockyjs/api/rocky_api_errors.c" " src/fw/applib/rockyjs/api/rocky_api_util.c" " src/fw/applib/rockyjs/api/rocky_api_app_message.c", test_sources_ant_glob = "test_rocky_api_app_message.c") rocky_clar(ctx, sources_ant_glob = " src/fw/util/dict.c" " src/fw/applib/rockyjs/api/rocky_api_global.c" " src/fw/applib/rockyjs/api/rocky_api_errors.c" " src/fw/applib/rockyjs/api/rocky_api_util.c" " src/fw/applib/rockyjs/api/rocky_api_watchinfo.c", test_sources_ant_glob = "test_rocky_api_watchinfo.c") rocky_clar(ctx, sources_ant_glob = " src/fw/applib/rockyjs/api/rocky_api_errors.c" " src/fw/applib/rockyjs/api/rocky_api_global.c" " src/fw/applib/rockyjs/api/rocky_api_util.c", test_sources_ant_glob = "test_rocky_api_util.c") rocky_clar(ctx, sources_ant_glob = " src/fw/applib/rockyjs/api/rocky_api_errors.c" " src/fw/applib/rockyjs/api/rocky_api_graphics_color.c" " src/fw/applib/rockyjs/api/rocky_api_util.c" " src/fw/applib/rockyjs/api/rocky_api_util_args.c", test_sources_ant_glob = "test_rocky_api_util_args.c") # Tests that should be skipped when running unit tests with the fake # JerryScript (emscripten_jerry_api.c): if ctx.variant != 'test_rocky_emx': rocky_clar(ctx, sources_ant_glob = " tests/fakes/fake_applib_resource.c" \ " tests/fakes/fake_clock.c" \ " src/fw/applib/graphics/gtypes.c" \ " src/fw/applib/rockyjs/rocky.c" \ " src/fw/applib/rockyjs/api/rocky_api.c" \ " src/fw/applib/rockyjs/api/rocky_api_datetime.c" \ " src/fw/applib/rockyjs/api/rocky_api_global.c" \ " src/fw/applib/rockyjs/api/rocky_api_errors.c" \ " src/fw/applib/rockyjs/api/rocky_api_tickservice.c" \ " src/fw/applib/rockyjs/api/rocky_api_timers.c" \ " src/fw/applib/rockyjs/api/rocky_api_graphics.c" \ " src/fw/applib/rockyjs/api/rocky_api_graphics_path2d.c" \ " src/fw/applib/rockyjs/api/rocky_api_graphics_color.c" \ " src/fw/applib/rockyjs/api/rocky_api_graphics_text.c" \ " src/fw/applib/rockyjs/api/rocky_api_memory.c" \ " src/fw/applib/rockyjs/api/rocky_api_console.c" \ " src/fw/applib/rockyjs/api/rocky_api_preferences.c" \ " src/fw/applib/rockyjs/api/rocky_api_util.c" \ " src/fw/applib/rockyjs/api/rocky_api_util_args.c", test_sources_ant_glob = "test_js.c") # No snapshot support in emscripten_jerry_api.c :D rocky_clar(ctx, sources_ant_glob = " tests/fakes/fake_applib_resource.c" " src/fw/applib/rockyjs/rocky.c" " src/fw/applib/rockyjs/rocky_res.c" " src/fw/applib/rockyjs/api/rocky_api_errors.c" " src/fw/applib/rockyjs/api/rocky_api_util.c", test_sources_ant_glob = "test_rocky_res.c") # When building unit tests with emscripten, skip this one because we're # using the console.log/warn/error implementations of the browser/node. rocky_clar(ctx, sources_ant_glob = " tests/fakes/fake_applib_resource.c" " src/fw/applib/rockyjs/api/rocky_api_global.c" " src/fw/applib/rockyjs/api/rocky_api_console.c" " src/fw/applib/rockyjs/api/rocky_api_errors.c" " src/fw/applib/rockyjs/api/rocky_api_util.c", test_sources_ant_glob = "test_rocky_api_console.c") rocky_clar(ctx, sources_ant_glob = " tests/fakes/fake_applib_resource.c" " tests/fakes/fake_clock.c" " src/fw/applib/rockyjs/api/rocky_api_global.c" " src/fw/applib/rockyjs/api/rocky_api_datetime.c" " src/fw/applib/rockyjs/api/rocky_api_errors.c" " src/fw/applib/rockyjs/api/rocky_api_util.c", test_sources_ant_glob = "test_rocky_api_datetime.c", defines=['CAPABILITY_HAS_JAVASCRIPT=1', 'CAPABILITY_JAVASCRIPT_BYTECODE_VERSION=1']) rocky_clar(ctx, sources_ant_glob=" tests/fakes/fake_applib_resource.c" " src/fw/applib/rockyjs/api/rocky_api_global.c" " src/fw/applib/rockyjs/api/rocky_api_memory.c" " src/fw/applib/rockyjs/api/rocky_api_errors.c" " src/fw/applib/rockyjs/api/rocky_api_util.c", test_sources_ant_glob = "test_rocky_api_memory.c") # Currently we're leaving the browser/node's setTimeout + friends alone rocky_clar(ctx, sources_ant_glob = " src/fw/applib/rockyjs/api/rocky_api_errors.c" " src/fw/applib/rockyjs/api/rocky_api_timers.c" " src/fw/applib/rockyjs/api/rocky_api_util.c", test_sources_ant_glob = "test_rocky_api_timers.c") # Emscripten transpiled jerry-api uses UTF8 internally. rocky_clar(ctx, sources_ant_glob= " src/fw/applib/rockyjs/api/rocky_api_errors.c" " src/fw/applib/rockyjs/api/rocky_api_util.c", test_sources_ant_glob = "test_rocky_text_encoding.c") # vim:filetype=python