From 76f0b115517bf6bb40a49523929558c3167596fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szymon=20K=C5=82os?= Date: Mon, 4 Sep 2023 09:57:09 +0200 Subject: [PATCH] Detect code duplicates in make-check run MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It uses jscpd project by invoking it using npm script "duplication". For now set minimum lines to report as 26, because we have some 25 line duplicates. Later we can reduce that number. Signed-off-by: Szymon Kłos Change-Id: I20e0ba9a07528e15a65f01d2247420da33339749 --- browser/.gitignore | 2 ++ browser/Makefile.am | 9 +++++++++ browser/package.json | 4 +++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/browser/.gitignore b/browser/.gitignore index a4e3f88e76..8b0c25aab9 100644 --- a/browser/.gitignore +++ b/browser/.gitignore @@ -8,8 +8,10 @@ index.html bower.json component.json +mocha.log mocha_tests/*.js tscompile.done +duplication.log _site dist/*.js diff --git a/browser/Makefile.am b/browser/Makefile.am index 9e29f3b94c..256ec42546 100644 --- a/browser/Makefile.am +++ b/browser/Makefile.am @@ -797,6 +797,7 @@ build-tests: $(MOCHA_TS_JS_FILES) @echo "Build of mocha test finished." MOCHA_TEST_LOG = "`pwd`/mocha.log" +DUPLICATION_TEST_LOG = "`pwd`/duplication.log" check-local: $(MOCHA_TS_JS_FILES) @echo "Running mocha tests..." @echo > ${MOCHA_TEST_LOG} @@ -806,6 +807,14 @@ check-local: $(MOCHA_TS_JS_FILES) cat ${MOCHA_TEST_LOG}; \ exit 1; \ fi + @echo "Checking code duplication..." + @echo > ${DUPLICATION_TEST_LOG} + @if npm run duplication 2> ${DUPLICATION_TEST_LOG} 1>&2; then \ + echo "Code duplication tests finished successfully."; \ + else \ + cat ${DUPLICATION_TEST_LOG}; \ + exit 1; \ + fi # the delay (in milliseconds) between each emulated key stroke for each view typing_speed=100 diff --git a/browser/package.json b/browser/package.json index bfe95b6cbc..ce1e0c1352 100644 --- a/browser/package.json +++ b/browser/package.json @@ -20,6 +20,7 @@ "jquery-contextmenu": "2.9.2", "jquery-mousewheel": "3.1.13", "jquery-ui": "1.13.2", + "jscpd": "3.5.9", "l10n-for-node": "0.0.1", "mocha": "8.2.1", "pako": "2.0.4", @@ -49,6 +50,7 @@ }, "scripts": { "test": "mocha 'mocha_tests/**/*.js'", - "test-single": "mocha" + "test-single": "mocha", + "duplication": "jscpd ./src/ --exitCode 1 --min-lines 26" } }