From 7aeaeb3468907689d73076842661f4b044832b49 Mon Sep 17 00:00:00 2001 From: Aleksandr Ryabov Date: Sun, 3 Nov 2024 17:06:54 +0300 Subject: [PATCH 1/5] Adding compilation logging --- steps/jpeek-repo.sh | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/steps/jpeek-repo.sh b/steps/jpeek-repo.sh index 08f29b3c..a6fe5383 100755 --- a/steps/jpeek-repo.sh +++ b/steps/jpeek-repo.sh @@ -41,30 +41,39 @@ fi mkdir -p "${logs}" build() { + failure_log="${TARGET}/temp/jpeek_failure.log" + success_log="${TARGET}/temp/jpeek_success.log" if [ -e "${project}/gradlew" ]; then echo "Building ${repo} (${pos}/${total}) with Gradlew..." if ! timeout 1h "${project}/gradlew" classes -q -p "${project}" > "${logs}/gradlew.log" 2>&1; then echo "Failed to compile ${repo} using Gradlew$("${LOCAL}/help/tdiff.sh" "${start}")" + echo "Failure ${repo} Gradlew" >> "${failure_log}" exit fi - echo "Сompiled ${repo} using Gradlew$("${LOCAL}/help/tdiff.sh" "${start}")" + echo "Compiled ${repo} using Gradlew$("${LOCAL}/help/tdiff.sh" "${start}")" + echo "Success ${repo} Gradlew" >> "${success_log}" elif [ -e "${project}/build.gradle" ]; then echo "Building ${repo} (${pos}/${total}) with Gradle..." echo "apply plugin: 'java'" >> "${project}/build.gradle" if ! timeout 1h gradle classes -q -p "${project}" > "${logs}/gradle.log" 2>&1; then - echo "Failed to compile ${repo} using Gradle$("${LOCAL}/help/tdiff.sh" "${start}")" + echo "Failed to compile ${repo} using Gradle$("${LOCAL}/help/tdiff.sh" "${start}")" + echo "Failure ${repo} Gradle" >> "${failure_log}" exit fi - echo "Сompiled ${repo} using Gradle$("${LOCAL}/help/tdiff.sh" "${start}")" + echo "Compiled ${repo} using Gradle$("${LOCAL}/help/tdiff.sh" "${start}")" + echo "Success ${repo} Gradle" >> "${success_log}" elif [ -e "${project}/pom.xml" ]; then echo "Building ${repo} (${pos}/${total}) with Maven..." if ! timeout 1h mvn compile -quiet -DskipTests -f "${project}" -U > "${logs}/maven.log" 2>&1; then echo "Failed to compile ${repo} using Maven$("${LOCAL}/help/tdiff.sh" "${start}")" + echo "Failure ${repo} Maven" >> "${failure_log}" exit fi - echo "Сompiled ${repo} using Maven$("${LOCAL}/help/tdiff.sh" "${start}")" + echo "Compiled ${repo} using Maven$("${LOCAL}/help/tdiff.sh" "${start}")" + echo "Success ${repo} Maven" >> "${success_log}" else echo "Could not build classes in ${repo} (${pos}/${total}) (neither Maven nor Gradle project)" + echo "Failure ${repo} Non-build" >> "${failure_log}" exit fi } From 5868953d0378dad069e68fe46885fd68a05d7b35 Mon Sep 17 00:00:00 2001 From: Aleksandr Ryabov Date: Sun, 3 Nov 2024 18:35:28 +0300 Subject: [PATCH 2/5] Adding compilation summary to Latex --- tex/report.tex | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tex/report.tex b/tex/report.tex index 275f165a..9c558d54 100644 --- a/tex/report.tex +++ b/tex/report.tex @@ -186,6 +186,19 @@ \section{Results}\label{sec:results} \end{itemize} +Some repositories require compilation prior to analysis. +Below is a summary of the build systems used and the status of their builds: +\begin{itemize} + \item Gradlew: successful builds: \iexec{grep -E 'Success.*Gradlew' "${TARGET}/temp/jpeek_success.log" | wc -l}, + failed builds: \iexec{grep -E 'Failure.*Gradlew' "${TARGET}/temp/jpeek_failure.log" | wc -l}. + \item Gradle: successful builds: \iexec{grep -E 'Success.*Gradle' "${TARGET}/temp/jpeek_success.log" | wc -l}, + failed builds: \iexec{grep -E 'Failure.*Gradle' "${TARGET}/temp/jpeek_failure.log" | wc -l}. + \item Maven: successful builds: \iexec{grep -E 'Success.*Maven' "${TARGET}/temp/jpeek_success.log" | wc -l}, + failed builds: \iexec{grep -E 'Failure.*Maven' "${TARGET}/temp/jpeek_failure.log" | wc -l}. + \item Other: successful builds: \iexec{grep -E 'Success.*Non-build' "${TARGET}/temp/jpeek_success.log" | wc -l}, + failed builds: \iexec{grep -E 'Failure.*Non-build' "${TARGET}/temp/jpeek_failure.log" | wc -l}. +\end{itemize} + The following \iexec{cat "${TARGET}/temp/list-of-metrics.tex" | wc -l}\unskip{} metrics were From 705d4adcb7a4c11b1c0e9077b483985e351b7ad7 Mon Sep 17 00:00:00 2001 From: Aleksandr Ryabov Date: Sun, 3 Nov 2024 20:16:36 +0300 Subject: [PATCH 3/5] Adding jpeek compilation logs initiation --- steps/jpeek.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/steps/jpeek.sh b/steps/jpeek.sh index 45a716e0..d088068e 100755 --- a/steps/jpeek.sh +++ b/steps/jpeek.sh @@ -33,6 +33,8 @@ touch "${jobs}" repos=$(find "${TARGET}/github" -maxdepth 2 -mindepth 2 -type d -print) total=$(echo "${repos}" | wc -l | xargs) +: > "${TARGET}/temp/jpeek_failure.log" +: > "${TARGET}/temp/jpeek_success.log" dir=${TARGET}/temp/jpeek/all mkdir -p "${dir}" From 4db9470b33b62e5273deae4ead8568c29b59dc3c Mon Sep 17 00:00:00 2001 From: Aleksandr Ryabov Date: Sun, 3 Nov 2024 21:01:48 +0300 Subject: [PATCH 4/5] Update tests --- tests/steps/test-jpeek-repo.sh | 1 + tests/steps/test-report.sh | 2 ++ 2 files changed, 3 insertions(+) diff --git a/tests/steps/test-jpeek-repo.sh b/tests/steps/test-jpeek-repo.sh index d244bfe1..b6e03889 100755 --- a/tests/steps/test-jpeek-repo.sh +++ b/tests/steps/test-jpeek-repo.sh @@ -50,6 +50,7 @@ echo "👍🏻 jPeek dependencies are installed" test ! "${value}" = 'NaN' test -e "${TARGET}/measurements/${repo}/src/main/java/com/yegor256/Jaxec.java.m.NHD-cvc" test ! -e "${TARGET}/measurements/${repo}/src/main/java/com/yegor256/Jaxec.java.m.NHD-cvc-cvc" + test $(grep -E 'Success.*Maven' "${TARGET}/temp/jpeek_success.log" | wc -l) = '1' } > "${stdout}" 2>&1 echo "👍🏻 A simple repo analyzed with jpeek correctly" diff --git a/tests/steps/test-report.sh b/tests/steps/test-report.sh index 09d17592..d91bda47 100755 --- a/tests/steps/test-report.sh +++ b/tests/steps/test-report.sh @@ -46,6 +46,8 @@ echo "👍🏻 Dependencies are available" mkdir -p "${TARGET}/data" mkdir -p "${TARGET}/github" echo "\\item foo" > "${TARGET}/temp/reports/foo.tex" + : > "${TARGET}/temp/jpeek_failure.log" + : > "${TARGET}/temp/jpeek_success.log" "${LOCAL}/steps/report.sh" test -e "${TARGET}/report.pdf" pdftotext "${TARGET}/report.pdf" "${TARGET}/report.txt" From 88d27cf9d18e601037a959ffd362a622bfca81f6 Mon Sep 17 00:00:00 2001 From: Aleksandr Ryabov Date: Sun, 3 Nov 2024 21:11:41 +0300 Subject: [PATCH 5/5] Fix lint issue --- tests/steps/test-jpeek-repo.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/steps/test-jpeek-repo.sh b/tests/steps/test-jpeek-repo.sh index b6e03889..0a691e18 100755 --- a/tests/steps/test-jpeek-repo.sh +++ b/tests/steps/test-jpeek-repo.sh @@ -50,7 +50,7 @@ echo "👍🏻 jPeek dependencies are installed" test ! "${value}" = 'NaN' test -e "${TARGET}/measurements/${repo}/src/main/java/com/yegor256/Jaxec.java.m.NHD-cvc" test ! -e "${TARGET}/measurements/${repo}/src/main/java/com/yegor256/Jaxec.java.m.NHD-cvc-cvc" - test $(grep -E 'Success.*Maven' "${TARGET}/temp/jpeek_success.log" | wc -l) = '1' + test "$(grep -Ec 'Success.*Maven' "${TARGET}/temp/jpeek_success.log")" = '1' } > "${stdout}" 2>&1 echo "👍🏻 A simple repo analyzed with jpeek correctly"