diff --git a/repos/gems/run/depot_autopilot.run b/repos/gems/run/depot_autopilot.run
index 42817660b3..f605ef9ce1 100644
--- a/repos/gems/run/depot_autopilot.run
+++ b/repos/gems/run/depot_autopilot.run
@@ -108,6 +108,11 @@ set avail_test_pkgs {
 	test-weak_ptr
 	test-xml_generator
 	test-xml_node
+	gcov
+}
+
+set avail_test_src_pkgs {
+
 }
 
 if { $single_test_pkg != "" && [lsearch -exact $avail_test_pkgs $single_test_pkg] == -1} {
@@ -328,6 +333,7 @@ proc prepare_to_run_genode { } {
 	global previous_skipped
 	global skip_test_pkg
 	global test_pkgs
+	global test_src_pkgs
 	global single_test_build
 	global single_test_modules
 	global last_test_pkg
@@ -345,6 +351,7 @@ proc prepare_to_run_genode { } {
 	create_boot_directory
 
 	set depot_tar_archives ""
+	set depot_tar_src_archives ""
 	set import_archives ""
 
 	foreach test_pkg $test_pkgs {
@@ -355,6 +362,14 @@ proc prepare_to_run_genode { } {
 		}
 	}
 
+	foreach test_src_pkg $test_src_pkgs {
+		if { [info exists skip_test_pkg($test_src_pkg)] } {
+			append_if [expr !$skip_test_pkg($test_src_pkg)] depot_tar_src_archives " genodelabs/src/$test_src_pkg "
+		} else {
+			append depot_tar_src_archives " genodelabs/src/$test_src_pkg "
+		}
+	}
+
 	append import_archives {
 		genodelabs/src/} [base_src] {
 		genodelabs/src/report_rom
@@ -372,7 +387,7 @@ proc prepare_to_run_genode { } {
 	check_archives_available {*}$all_archives
 
 	autopilot_create_tar_from_depot_binaries [run_dir]/genode/depot.tar {*}$depot_tar_archives
-
+	append_src_and_api_depot_packages_to_tar [run_dir]/genode/depot.tar {*}$depot_tar_src_archives
 
 	#
 	# Install the root-init config
@@ -413,12 +428,17 @@ proc prepare_to_run_genode { } {
 		</start>
 
 		<start name="vfs" priority="-1">
-			<resource name="RAM" quantum="4M"/>
+			<resource name="RAM" quantum="16M"/>
 			<provides> <service name="File_system"/> </provides>
 			<config>
-				<vfs> <tar name="depot.tar"/> </vfs>
-				<policy label="depot_query -> depot" root="/" />
-				<policy label="fs_rom -> "           root="/" />
+				<vfs>
+					<dir name="depot"> <tar name="depot.tar"/> </dir>
+					<dir name="gcov_data"> <ram/> </dir>
+				</vfs>
+				<policy label="depot_query -> depot"             root="/depot" />
+				<policy label="fs_rom -> "                       root="/depot" />
+				<policy label="dynamic -> gcov -> gcov -> depot" root="/depot" />
+				<policy label_suffix=" -> gcov_data"             root="/gcov_data" writeable="yes" />
 			</config>
 		</start>
 
@@ -452,21 +472,24 @@ proc prepare_to_run_genode { } {
 						<service name="RM"/>
 						<service name="Timer"/>
 						<service name="TRACE"/>
+						<service name="File_system"/>
 					</parent-provides>
 				</static>
 				<common_routes>
 
 					} [single_test_module_routes] {
 
-					<service name="ROM" label_last="ld.lib.so"> <parent/> </service>
-					<service name="ROM" label_last="init">      <parent/> </service>
-					<service name="CPU">                        <parent/> </service>
-					<service name="PD">                         <parent/> </service>
-					<service name="LOG">                        <parent/> </service>
-					<service name="IO_PORT">                    <parent/> </service>
-					<service name="Timer">                      <parent/> </service>
-					<service name="RM">                         <parent/> </service>
-					<service name="TRACE">                      <parent/> </service>
+					<service name="ROM" label_last="ld.lib.so">           <parent/> </service>
+					<service name="ROM" label_last="init">                <parent/> </service>
+					<service name="CPU">                                  <parent/> </service>
+					<service name="PD">                                   <parent/> </service>
+					<service name="LOG">                                  <parent/> </service>
+					<service name="IO_PORT">                              <parent/> </service>
+					<service name="Timer">                                <parent/> </service>
+					<service name="RM">                                   <parent/> </service>
+					<service name="TRACE">                                <parent/> </service>
+					<service name="File_system" label="gcov -> depot">    <parent/> </service>
+					<service name="File_system" label_suffix="gcov_data"> <parent/> </service>
 				</common_routes>
 
 				<previous-results time_sec="} [expr ($previous_time_ms + 999) / 1000] {"
@@ -563,11 +586,25 @@ foreach test_pkg $avail_test_pkgs {
 	}
 }
 
+
+#
+# Compose the test_src_pkgs list from a list of available source packages by
+# applying the single_test_pkg variable.
+#
+set test_src_pkgs ""
+foreach test_src_pkg $avail_test_src_pkgs {
+	if { $single_test_pkg == "" || $single_test_pkg == $test_src_pkg } {
+		append test_src_pkgs " $test_src_pkg "
+	}
+}
+
+
 set previous_results   ""
 set previous_time_ms   0
 set previous_succeeded 0
 set previous_failed    0
 set previous_skipped   0
+
 prepare_to_run_genode
 
 while {1} {