From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id mDwRC/w072aEegAAe85BDQ:P1 (envelope-from ) for ; Sat, 21 Sep 2024 23:05:00 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2.migadu.com with LMTPS id mDwRC/w072aEegAAe85BDQ (envelope-from ) for ; Sat, 21 Sep 2024 23:05:00 +0200 X-Envelope-To: patches@johnnyrichard.com Authentication-Results: aspmx1.migadu.com; none Received: from mail-a.sr.ht (mail-a.sr.ht [46.23.81.152]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 193F3BEF9 for ; Sat, 21 Sep 2024 23:05:00 +0200 (CEST) DKIM-Signature: a=rsa-sha256; bh=a6TH80vx0q5k2/cVWzbOwbI2aX7XOmeqiipuPdQTamk=; c=simple/simple; d=lists.sr.ht; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-Unsubscribe:List-Subscribe:List-Archive:List-Post:List-ID; q=dns/txt; s=20240113; t=1726952699; v=1; b=Qaw+Siy5vDscCo9MEkPBH7vZcFMJJ7pCSTY+U59SdD1d15QhDJw7Bvtz/iHs7y582nExixfI mszKkJwBMEYEnmyC0SlPL2D9fiZkFJZigUxifZu86VnfbntY03i2/QdHLzVbTfBj+Jd45A4yya2 DOkKmlYuYQGKVp37KIOwmJeIXc95UEB06DuSBcubCIqFUSbWZIKir6/LGwP8mlBOhKLSS74M+r8 Bv/nHtzaag2/lnyR4xWN89tBl1mz1JsRDddDv3v6EkINLu+SwIcwsX8f/bEoJqqLVM+R8xhzbB+ Dbblsod5Zdt58dR2w43amfKuw1RbX+J2idSh0WD16FSOQ== Received: from lists.sr.ht (unknown [46.23.81.154]) by mail-a.sr.ht (Postfix) with ESMTPSA id 5DAF2202F6 for ; Sat, 21 Sep 2024 21:04:59 +0000 (UTC) Received: from out-181.mta1.migadu.com (out-181.mta1.migadu.com [95.215.58.181]) by mail-a.sr.ht (Postfix) with ESMTPS id A0D9B20275 for <~johnnyrichard/olang-devel@lists.sr.ht>; Sat, 21 Sep 2024 21:04:58 +0000 (UTC) X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=johnnyrichard.com; s=key1; t=1726952698; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=uqooYQc+T/jjA2QfQrW8eYYezU2fVs/deBmySN2pKyo=; b=QSlaHZh1JYe83akccDU2/U/yb4xQGuGqi7TKtinpjPkpe66fU2GzWGNnBQY3fJo8ICqxFE MvtH4xjc35iFBobB0RO1O0e2GYn9t+ox5sFraWNjSjHfrqJy2Nehm4j5CgFDznmezbEVlS IvPfhn9cncgFdHPOL9n2iwWodfdKOjQkoUHT/h5zqlR7Sj+RZIVbQtnY1T5X4jdngMDzQP GtkGQsnKEj8i1FQiDqG5umuT2JvKkQSexFXLippL56WJ12Io63Xf9EGEv5LPPXcV3DLUB6 4d4e3Wqvexkp90vuYJCTznu13OMNK6X6HFjfn0GUlnyFjfbcSZ39CppCcXKPSg== From: Johnny Richard To: ~johnnyrichard/olang-devel@lists.sr.ht Cc: Johnny Richard Subject: [PATCH olang v1 1/2] tests: build: enhance compiler functional tests Date: Sat, 21 Sep 2024 23:02:48 +0200 Message-ID: <20240921210512.1100242-2-johnny@johnnyrichard.com> In-Reply-To: <20240921210512.1100242-1-johnny@johnnyrichard.com> References: <20240921210512.1100242-1-johnny@johnnyrichard.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Sourcehut-Patchset-Status: UNKNOWN List-Unsubscribe: List-Subscribe: List-Archive: Archived-At: List-Post: List-ID: ~johnnyrichard/olang-devel <~johnnyrichard/olang-devel.lists.sr.ht> Sender: ~johnnyrichard/olang-devel <~johnnyrichard/olang-devel@lists.sr.ht> X-Migadu-Flow: FLOW_IN X-Migadu-Country: NL X-Migadu-Spam-Score: -4.00 X-Spam-Score: -4.00 X-Migadu-Queue-Id: 193F3BEF9 X-Migadu-Scanner: mx10.migadu.com X-TUID: d518znRPAw9I There was two problem with the current state of our integration tests: 1) The folder structure is very annoying and long to navigate, the last tests folder mess with the shell autocomplete because it has almost the same name as the tests.sh script. 2) When we run the make all for integration tests, we are not using the make how it was intended to be used. We have inline shell script that loop over all tests and we cannot run tests in parallel. This change will enable the parallelization and reduce the folder structure so we can have a better development experience. Signed-off-by: Johnny Richard --- Makefile | 8 +++---- .../tests => execute}/0001_main_exit.ol | 24 +++++++++---------- .../0002_binary_operator_addition.ol | 0 .../0003_binary_operator_multiplication.ol | 0 .../0004_binary_operator_division.ol | 0 .../0005_binary_operator_reminder.ol | 0 .../0006_binary_operator_subtraction.ol | 0 .../0007_binary_operator_eq.ol | 0 .../0008_binary_operator_lt.ol | 0 .../0009_binary_operator_gt.ol | 0 .../0010_binary_operator_neq.ol | 0 .../0011_binary_operator_leq.ol | 0 .../0012_binary_operator_geq.ol | 0 .../0013_binary_operator_lshift.ol | 0 .../0014_binary_operator_rshift.ol | 0 .../0015_binary_operator_xor.ol | 0 .../0016_binary_operator_and.ol | 0 .../0017_binary_operator_or.ol | 0 .../0018_binary_operator_logical_and.ol | 0 .../0019_binary_operator_logical_or.ol | 0 .../tests => execute}/0020_if_statement.ol | 2 +- .../0021_if_statement_failed.ol | 0 .../0022_if_statement_literal.ol | 0 .../tests => execute}/0023_else_statement.ol | 2 +- .../tests => execute}/0024_var_definition.ol | 2 +- .../0025_var_definition_nested.ol | 0 tests/execute/Makefile | 15 ++++++++++++ tests/{integration/test.sh => execute/run.sh} | 0 tests/integration/Makefile | 9 ------- 29 files changed, 34 insertions(+), 28 deletions(-) rename tests/{integration/tests => execute}/0001_main_exit.ol (66%) rename tests/{integration/tests => execute}/0002_binary_operator_addition.ol (100%) rename tests/{integration/tests => execute}/0003_binary_operator_multiplication.ol (100%) rename tests/{integration/tests => execute}/0004_binary_operator_division.ol (100%) rename tests/{integration/tests => execute}/0005_binary_operator_reminder.ol (100%) rename tests/{integration/tests => execute}/0006_binary_operator_subtraction.ol (100%) rename tests/{integration/tests => execute}/0007_binary_operator_eq.ol (100%) rename tests/{integration/tests => execute}/0008_binary_operator_lt.ol (100%) rename tests/{integration/tests => execute}/0009_binary_operator_gt.ol (100%) rename tests/{integration/tests => execute}/0010_binary_operator_neq.ol (100%) rename tests/{integration/tests => execute}/0011_binary_operator_leq.ol (100%) rename tests/{integration/tests => execute}/0012_binary_operator_geq.ol (100%) rename tests/{integration/tests => execute}/0013_binary_operator_lshift.ol (100%) rename tests/{integration/tests => execute}/0014_binary_operator_rshift.ol (100%) rename tests/{integration/tests => execute}/0015_binary_operator_xor.ol (100%) rename tests/{integration/tests => execute}/0016_binary_operator_and.ol (100%) rename tests/{integration/tests => execute}/0017_binary_operator_or.ol (100%) rename tests/{integration/tests => execute}/0018_binary_operator_logical_and.ol (100%) rename tests/{integration/tests => execute}/0019_binary_operator_logical_or.ol (100%) rename tests/{integration/tests => execute}/0020_if_statement.ol (96%) rename tests/{integration/tests => execute}/0021_if_statement_failed.ol (100%) rename tests/{integration/tests => execute}/0022_if_statement_literal.ol (100%) rename tests/{integration/tests => execute}/0023_else_statement.ol (96%) rename tests/{integration/tests => execute}/0024_var_definition.ol (96%) rename tests/{integration/tests => execute}/0025_var_definition_nested.ol (100%) create mode 100644 tests/execute/Makefile rename tests/{integration/test.sh => execute/run.sh} (100%) delete mode 100644 tests/integration/Makefile diff --git a/Makefile b/Makefile index 12b09a4..2b65f96 100644 --- a/Makefile +++ b/Makefile @@ -89,10 +89,10 @@ format-fix: $(SRCS) $(HEADERS) clang-format -i $? $(MAKE) -C tests/unit/ format-fix -.PHONY: integration-test -integration-test: +.PHONY: check-execute +check-execute: $(MAKE) - $(MAKE) -C tests/integration/ + $(MAKE) -C tests/execute/ .PHONY: unit-test unit-test: @@ -108,7 +108,7 @@ clean: .PHONY: check check: $(MAKE) - $(MAKE) -C tests/integration/ + $(MAKE) -C tests/execute/ $(MAKE) -C tests/unit/ .PHONY: docs diff --git a/tests/integration/tests/0001_main_exit.ol b/tests/execute/0001_main_exit.ol similarity index 66% rename from tests/integration/tests/0001_main_exit.ol rename to tests/execute/0001_main_exit.ol index f446eb9..69e5ed1 100644 --- a/tests/integration/tests/0001_main_exit.ol +++ b/tests/execute/0001_main_exit.ol @@ -31,16 +31,16 @@ fn main(): u32 { # END # # TEST test_contains_tokens WITH -# ./tests/0001_main_exit.ol:17:1: -# ./tests/0001_main_exit.ol:17:4: -# ./tests/0001_main_exit.ol:17:8: <(> -# ./tests/0001_main_exit.ol:17:9: <)> -# ./tests/0001_main_exit.ol:17:10: <:> -# ./tests/0001_main_exit.ol:17:12: -# ./tests/0001_main_exit.ol:17:16: <{> -# ./tests/0001_main_exit.ol:17:17: -# ./tests/0001_main_exit.ol:18:3: -# ./tests/0001_main_exit.ol:18:10: -# ./tests/0001_main_exit.ol:18:11: -# ./tests/0001_main_exit.ol:19:1: <}> +# ./0001_main_exit.ol:17:1: +# ./0001_main_exit.ol:17:4: +# ./0001_main_exit.ol:17:8: <(> +# ./0001_main_exit.ol:17:9: <)> +# ./0001_main_exit.ol:17:10: <:> +# ./0001_main_exit.ol:17:12: +# ./0001_main_exit.ol:17:16: <{> +# ./0001_main_exit.ol:17:17: +# ./0001_main_exit.ol:18:3: +# ./0001_main_exit.ol:18:10: +# ./0001_main_exit.ol:18:11: +# ./0001_main_exit.ol:19:1: <}> # END diff --git a/tests/integration/tests/0002_binary_operator_addition.ol b/tests/execute/0002_binary_operator_addition.ol similarity index 100% rename from tests/integration/tests/0002_binary_operator_addition.ol rename to tests/execute/0002_binary_operator_addition.ol diff --git a/tests/integration/tests/0003_binary_operator_multiplication.ol b/tests/execute/0003_binary_operator_multiplication.ol similarity index 100% rename from tests/integration/tests/0003_binary_operator_multiplication.ol rename to tests/execute/0003_binary_operator_multiplication.ol diff --git a/tests/integration/tests/0004_binary_operator_division.ol b/tests/execute/0004_binary_operator_division.ol similarity index 100% rename from tests/integration/tests/0004_binary_operator_division.ol rename to tests/execute/0004_binary_operator_division.ol diff --git a/tests/integration/tests/0005_binary_operator_reminder.ol b/tests/execute/0005_binary_operator_reminder.ol similarity index 100% rename from tests/integration/tests/0005_binary_operator_reminder.ol rename to tests/execute/0005_binary_operator_reminder.ol diff --git a/tests/integration/tests/0006_binary_operator_subtraction.ol b/tests/execute/0006_binary_operator_subtraction.ol similarity index 100% rename from tests/integration/tests/0006_binary_operator_subtraction.ol rename to tests/execute/0006_binary_operator_subtraction.ol diff --git a/tests/integration/tests/0007_binary_operator_eq.ol b/tests/execute/0007_binary_operator_eq.ol similarity index 100% rename from tests/integration/tests/0007_binary_operator_eq.ol rename to tests/execute/0007_binary_operator_eq.ol diff --git a/tests/integration/tests/0008_binary_operator_lt.ol b/tests/execute/0008_binary_operator_lt.ol similarity index 100% rename from tests/integration/tests/0008_binary_operator_lt.ol rename to tests/execute/0008_binary_operator_lt.ol diff --git a/tests/integration/tests/0009_binary_operator_gt.ol b/tests/execute/0009_binary_operator_gt.ol similarity index 100% rename from tests/integration/tests/0009_binary_operator_gt.ol rename to tests/execute/0009_binary_operator_gt.ol diff --git a/tests/integration/tests/0010_binary_operator_neq.ol b/tests/execute/0010_binary_operator_neq.ol similarity index 100% rename from tests/integration/tests/0010_binary_operator_neq.ol rename to tests/execute/0010_binary_operator_neq.ol diff --git a/tests/integration/tests/0011_binary_operator_leq.ol b/tests/execute/0011_binary_operator_leq.ol similarity index 100% rename from tests/integration/tests/0011_binary_operator_leq.ol rename to tests/execute/0011_binary_operator_leq.ol diff --git a/tests/integration/tests/0012_binary_operator_geq.ol b/tests/execute/0012_binary_operator_geq.ol similarity index 100% rename from tests/integration/tests/0012_binary_operator_geq.ol rename to tests/execute/0012_binary_operator_geq.ol diff --git a/tests/integration/tests/0013_binary_operator_lshift.ol b/tests/execute/0013_binary_operator_lshift.ol similarity index 100% rename from tests/integration/tests/0013_binary_operator_lshift.ol rename to tests/execute/0013_binary_operator_lshift.ol diff --git a/tests/integration/tests/0014_binary_operator_rshift.ol b/tests/execute/0014_binary_operator_rshift.ol similarity index 100% rename from tests/integration/tests/0014_binary_operator_rshift.ol rename to tests/execute/0014_binary_operator_rshift.ol diff --git a/tests/integration/tests/0015_binary_operator_xor.ol b/tests/execute/0015_binary_operator_xor.ol similarity index 100% rename from tests/integration/tests/0015_binary_operator_xor.ol rename to tests/execute/0015_binary_operator_xor.ol diff --git a/tests/integration/tests/0016_binary_operator_and.ol b/tests/execute/0016_binary_operator_and.ol similarity index 100% rename from tests/integration/tests/0016_binary_operator_and.ol rename to tests/execute/0016_binary_operator_and.ol diff --git a/tests/integration/tests/0017_binary_operator_or.ol b/tests/execute/0017_binary_operator_or.ol similarity index 100% rename from tests/integration/tests/0017_binary_operator_or.ol rename to tests/execute/0017_binary_operator_or.ol diff --git a/tests/integration/tests/0018_binary_operator_logical_and.ol b/tests/execute/0018_binary_operator_logical_and.ol similarity index 100% rename from tests/integration/tests/0018_binary_operator_logical_and.ol rename to tests/execute/0018_binary_operator_logical_and.ol diff --git a/tests/integration/tests/0019_binary_operator_logical_or.ol b/tests/execute/0019_binary_operator_logical_or.ol similarity index 100% rename from tests/integration/tests/0019_binary_operator_logical_or.ol rename to tests/execute/0019_binary_operator_logical_or.ol diff --git a/tests/integration/tests/0020_if_statement.ol b/tests/execute/0020_if_statement.ol similarity index 96% rename from tests/integration/tests/0020_if_statement.ol rename to tests/execute/0020_if_statement.ol index d48122f..ece9450 100644 --- a/tests/integration/tests/0020_if_statement.ol +++ b/tests/execute/0020_if_statement.ol @@ -24,7 +24,7 @@ fn main(): u32 { # TEST test_run_binary(exit_code=0) # # TEST test_contains_tokens WITH -# ./tests/0020_if_statement.ol:17:3: +# ./0020_if_statement.ol:17:3: # END # TEST test_ast WITH diff --git a/tests/integration/tests/0021_if_statement_failed.ol b/tests/execute/0021_if_statement_failed.ol similarity index 100% rename from tests/integration/tests/0021_if_statement_failed.ol rename to tests/execute/0021_if_statement_failed.ol diff --git a/tests/integration/tests/0022_if_statement_literal.ol b/tests/execute/0022_if_statement_literal.ol similarity index 100% rename from tests/integration/tests/0022_if_statement_literal.ol rename to tests/execute/0022_if_statement_literal.ol diff --git a/tests/integration/tests/0023_else_statement.ol b/tests/execute/0023_else_statement.ol similarity index 96% rename from tests/integration/tests/0023_else_statement.ol rename to tests/execute/0023_else_statement.ol index fafb22e..539ff95 100644 --- a/tests/integration/tests/0023_else_statement.ol +++ b/tests/execute/0023_else_statement.ol @@ -26,7 +26,7 @@ fn main(): u32 { # TEST test_run_binary(exit_code=0) # TEST test_contains_tokens WITH -# ./tests/0023_else_statement.ol:19:5: +# ./0023_else_statement.ol:19:5: # END # TEST test_ast WITH diff --git a/tests/integration/tests/0024_var_definition.ol b/tests/execute/0024_var_definition.ol similarity index 96% rename from tests/integration/tests/0024_var_definition.ol rename to tests/execute/0024_var_definition.ol index 5c23449..3f09fa5 100644 --- a/tests/integration/tests/0024_var_definition.ol +++ b/tests/execute/0024_var_definition.ol @@ -23,7 +23,7 @@ fn main(): u32 { # TEST test_run_binary(exit_code=0) # TEST test_contains_tokens WITH -# ./tests/0024_var_definition.ol:17:3: +# ./0024_var_definition.ol:17:3: # END # TEST test_ast WITH diff --git a/tests/integration/tests/0025_var_definition_nested.ol b/tests/execute/0025_var_definition_nested.ol similarity index 100% rename from tests/integration/tests/0025_var_definition_nested.ol rename to tests/execute/0025_var_definition_nested.ol diff --git a/tests/execute/Makefile b/tests/execute/Makefile new file mode 100644 index 0000000..c736a78 --- /dev/null +++ b/tests/execute/Makefile @@ -0,0 +1,15 @@ +.POSIX: + +RUNNER := ./run.sh +SRCS := $(wildcard *.ol) +TESTS := $(patsubst %.ol, %.run, $(SRCS)) + +.SUFFIXES: +.SUFFIXES: .ol .run + +.PHONY: all +all: $(TESTS) + +.ol.run: + @$(RUNNER) ./$< + diff --git a/tests/integration/test.sh b/tests/execute/run.sh similarity index 100% rename from tests/integration/test.sh rename to tests/execute/run.sh diff --git a/tests/integration/Makefile b/tests/integration/Makefile deleted file mode 100644 index bda51af..0000000 --- a/tests/integration/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -TESTER_SRC := ./test.sh -TESTS := $(wildcard ./tests/*.ol) - -.PHONY: all -all: - @set -e; \ - for file in $(TESTS); do \ - $(TESTER_SRC) "$$file"; \ - done -- 2.46.0