This patch combine three patch which is related to "--gcov" flag. 76/308676/2
authorManjeet <manjeet.1@partner.samsung.com>
Thu, 28 Mar 2024 14:30:00 +0000 (20:00 +0530)
committerBot Blink <blinkbot@samsung.com>
Fri, 29 Mar 2024 02:10:17 +0000 (02:10 +0000)
First patch provides an option to enable gcov for Tizen target and
change to build with gcc when given "--gcov" option.

In second patch we change "gcov" option value for SR QB
Refer to SR Tizen Build macro in [0].
The value of the variable should be "1" to enable gcov.

In third patch we change "gcov" option value in spec file
Change the value for SR QB

References:
https://review.tizen.org/gerrit/290776
https://review.tizen.org/gerrit/292688
https://review.tizen.org/gerrit/293899

Change-Id: Iccc9042fb4c4a373bdd1777b77e1b97d95651d03

packaging/chromium-efl.spec
tizen_src/build/common.sh
tizen_src/build/config/tizen_features.gni
tizen_src/ewk/efl_integration/BUILD.gn

index cf4502c..31d62ab 100644 (file)
@@ -254,7 +254,7 @@ BuildRequires: pkgconfig(capi-boost-tv)
 %define __enable_gcov 0
 %endif
 
-%if "%{?_clang}" == "1" && "%{ARCHITECTURE}" == "armv7l"
+%if "%{?_clang}" == "1" && "%{ARCHITECTURE}" == "armv7l" && "%{?gcov}" != "1"
 %define __use_clang 1
 %else
 %define __use_clang 0
@@ -387,6 +387,15 @@ Requires: %{name} = %{version}-%{release}
 Chromium tizen ppapi extension unit test utilities
 %endif
 
+%if 0%{?__enable_gcov}
+%package -n webkit2-gcov
+Summary: Chromium gcov
+Group: Development/UnitTests
+Requires: %{name} = %{version}-%{release}
+%description -n webkit2-gcov
+Chromium gcov objects
+%endif
+
 # The macros '%TZ_' are valid from tizen v3.0
 %define _pkgid org.tizen.%{name}
 %define _xmldir %TZ_SYS_RO_PACKAGES
@@ -571,6 +580,9 @@ touch ./tizen_src/downloadable/ewk_api_wrapper_generator.py
 %if %{__enable_network_camera}
   "enable_network_camera=true" \
 %endif
+%if 0%{?__enable_gcov}
+  "enable_gcov=true" \
+%endif
 %if %{__enable_gamepad_latency_test}
   "enable_gamepad_latency_test=true" \
 %endif
@@ -698,6 +710,11 @@ install -m 0644 "%{OUTPUT_FOLDER}"/version            "%{buildroot}"%{CHROMIUM_L
 install -m 0644 "%{OUTPUT_FOLDER}"/snapshot_blob.bin  "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/
 install -m 0644 "%{OUTPUT_FOLDER}"/content_shell.pak  "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/
 
+%if 0%{?__enable_gcov}
+mkdir -p gcov-obj
+find . -name '*.gcno' -exec cp '{}' gcov-obj ';'
+%endif
+
 install -d "%{buildroot}"%{_bindir}
 install -d "%{buildroot}"%{_libdir}
 install -d "%{buildroot}"%{CHROMIUM_APP_DIR}/bin
@@ -719,6 +736,11 @@ install -m 0644 third_party/electron_node/src/*.h "%{buildroot}"%{_includedir}/n
 install -m 0644 %{_libdir}/libscl-common.so        "%{buildroot}"%{_libdir}
 %endif
 
+%if 0%{?__enable_gcov}
+mkdir -p %{buildroot}%{_datadir}/gcov/obj
+install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj
+%endif
+
 %if %{__build_chrome} == 1
   install -m 0755 "%{OUTPUT_FOLDER}"/chrome_tizen "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/chrome_tizen
   sed 's#@binary@#%{CHROMIUM_LIB_DIR}/bin/chrome_tizen#' %{SOURCE1} > "%{buildroot}"%{_bindir}/chrome_tizen
@@ -1202,6 +1224,11 @@ rm -rf %{CHROMIUM_TPK_DIR}/%{_tpk_file_name}.tpk
 %{CHROMIUM_TPK_DIR}/*
 %endif
 
+%if 0%{?__enable_gcov}
+%files -n webkit2-gcov
+%{_datadir}/gcov/obj/*
+%endif
+
 %files devel
 %defattr(-,root,root,-)
 %{_includedir}/chromium-ewk/*.h
index 45054d5..8248d7e 100755 (executable)
@@ -253,6 +253,13 @@ function setupAndExecuteTargetBuild() {
     --debug)
         ARGS+=(--define "_debug_mode 1")
     ;;
+    --gcov)
+        LOCAL_BUILD=0
+        ARGS+=(--define "_local_build 0")
+        ARGS+=(--define "_clang 0")
+        ARGS+=(--define "_no_lto 0")
+        ARGS+=(--define "gcov 1")
+    ;;
     --skip-ninja)
         ARGS+=(--define "_skip_ninja 1")
     ;;
index 6a163d2..32ac689 100644 (file)
@@ -74,6 +74,7 @@ declare_args() {
   tizen_resource_manager = false
   enable_network_camera = false
   enable_gamepad_latency_test = false
+  enable_gcov = false
   tizen_thread_booster_service = false
 
   drm_mapi_aarch_64 = false
index b09d396..b0f0c78 100644 (file)
@@ -766,6 +766,14 @@ shared_library("chromium-ewk") {
       "-Wl,--no-keep-memory",
     ]
   }
+
+  if (enable_gcov) {
+    cflags += [
+      "-fprofile-arcs",
+      "-ftest-coverage",
+    ]
+    ldflags += [ "-fprofile-arcs" ]
+  }
 }
 
 executable("efl_webprocess") {