diff --git a/.gitattributes b/.gitattributes
index 445464d32b3d9682b62fff9a1e4f28a4721c61a8..3d45b8f259b8901e023838faeb3767ac3ab32733 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -3923,6 +3923,17 @@ RTCP/Cobalt/CoInterface/test/tParset.sh eol=lf
 RTCP/Cobalt/CoInterface/test/tRingCoordinates.py eol=lf
 RTCP/Cobalt/CoInterface/test/tRingCoordinates.sh eol=lf
 RTCP/Cobalt/CoInterface/test/tcmpfloat.sh eol=lf
+RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.in_SAP0-1sb-P001.raw.gz -text svneol=unset#application/x-gzip
+RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.in_SAP0-4sb-P000.raw.gz -text svneol=unset#application/x-gzip
+RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.in_SAP1-3sb-P002.raw.gz -text svneol=unset#application/x-gzip
+RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.in_SAP1-4sb-P000.raw.gz -text svneol=unset#application/x-gzip
+RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.in_SAP1-4sb-P001.raw.gz -text svneol=unset#application/x-gzip
+RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.run eol=lf
+RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.sh eol=lf
+RTCP/Cobalt/CobaltTest/test/tMultiPartTABOutput.in_P000.raw.gz -text svneol=unset#application/x-gzip
+RTCP/Cobalt/CobaltTest/test/tMultiPartTABOutput.in_P001.raw.gz -text svneol=unset#application/x-gzip
+RTCP/Cobalt/CobaltTest/test/tMultiPartTABOutput.run eol=lf
+RTCP/Cobalt/CobaltTest/test/tMultiPartTABOutput.sh eol=lf
 RTCP/Cobalt/GPUProc/doc/2ndtranspose.txt -text
 RTCP/Cobalt/GPUProc/doc/BGP-Cobalt-procs.dia -text
 RTCP/Cobalt/GPUProc/doc/BGP-Cobalt-procs.png -text svneol=unset#image/png
@@ -4521,17 +4532,6 @@ SubSystems/Online_Cobalt/test/MockOnlineControl.sh eol=lf
 SubSystems/Online_Cobalt/test/tMACfeedback.in_parset -text
 SubSystems/Online_Cobalt/test/tMACfeedback.run eol=lf
 SubSystems/Online_Cobalt/test/tMACfeedback.sh eol=lf
-SubSystems/Online_Cobalt/test/tManyPartTABOutput.in_SAP0-1sb-P001.raw.gz -text svneol=unset#application/x-gzip
-SubSystems/Online_Cobalt/test/tManyPartTABOutput.in_SAP0-4sb-P000.raw.gz -text svneol=unset#application/x-gzip
-SubSystems/Online_Cobalt/test/tManyPartTABOutput.in_SAP1-3sb-P002.raw.gz -text svneol=unset#application/x-gzip
-SubSystems/Online_Cobalt/test/tManyPartTABOutput.in_SAP1-4sb-P000.raw.gz -text svneol=unset#application/x-gzip
-SubSystems/Online_Cobalt/test/tManyPartTABOutput.in_SAP1-4sb-P001.raw.gz -text svneol=unset#application/x-gzip
-SubSystems/Online_Cobalt/test/tManyPartTABOutput.run eol=lf
-SubSystems/Online_Cobalt/test/tManyPartTABOutput.sh eol=lf
-SubSystems/Online_Cobalt/test/tMultiPartTABOutput.in_P000.raw.gz -text svneol=unset#application/x-gzip
-SubSystems/Online_Cobalt/test/tMultiPartTABOutput.in_P001.raw.gz -text svneol=unset#application/x-gzip
-SubSystems/Online_Cobalt/test/tMultiPartTABOutput.run eol=lf
-SubSystems/Online_Cobalt/test/tMultiPartTABOutput.sh eol=lf
 SubSystems/Online_Cobalt/test/tProductionParsets.in_parsets/CorrProc_173014.param -text
 SubSystems/Online_Cobalt/test/tProductionParsets.in_parsets/CorrProc_196344-CygAf009-225SAPS.cleaned.param -text
 SubSystems/Online_Cobalt/test/tProductionParsets.run eol=lf
diff --git a/CMake/LofarPackageList.cmake b/CMake/LofarPackageList.cmake
index 28c174ae880e611fcba11363e8f828eef0600480..f8f632a3ca7b818dd28cc590a5cc306175f8f31a 100644
--- a/CMake/LofarPackageList.cmake
+++ b/CMake/LofarPackageList.cmake
@@ -1,7 +1,7 @@
 # - Create for each LOFAR package a variable containing the absolute path to
 # its source directory. 
 #
-# Generated by gen_LofarPackageList_cmake.sh at Sat Apr  5 21:14:41 CEST 2014
+# Generated by gen_LofarPackageList_cmake.sh at Tue Apr 15 20:51:38 UTC 2014
 #
 #                      ---- DO NOT EDIT ----
 #
@@ -121,6 +121,7 @@ if(NOT DEFINED LOFAR_PACKAGE_LIST_INCLUDED)
   set(GPUProc_SOURCE_DIR ${CMAKE_SOURCE_DIR}/RTCP/Cobalt/GPUProc)
   set(OpenCL_FFT_SOURCE_DIR ${CMAKE_SOURCE_DIR}/RTCP/Cobalt/OpenCL_FFT)
   set(CoInterface_SOURCE_DIR ${CMAKE_SOURCE_DIR}/RTCP/Cobalt/CoInterface)
+  set(CobaltTest_SOURCE_DIR ${CMAKE_SOURCE_DIR}/RTCP/Cobalt/CobaltTest)
   set(OTDB_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/OTDB)
   set(OTB_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/OTB)
   set(OTDB_SQL_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/OTDB/sql)
diff --git a/RTCP/Cobalt/CMakeLists.txt b/RTCP/Cobalt/CMakeLists.txt
index a246a3a48359537a39e07277a9bb91669124aebf..790172a5d9d36bb77582f79208bcf008b124e7a7 100644
--- a/RTCP/Cobalt/CMakeLists.txt
+++ b/RTCP/Cobalt/CMakeLists.txt
@@ -5,3 +5,4 @@ lofar_add_package(OutputProc)  # GPU cluster: Data Storage applications
 lofar_add_package(GPUProc)     # GPU computation applications
 lofar_add_package(OpenCL_FFT)  # Apple's FFT library for OpenCL
 lofar_add_package(CoInterface) # CoInterface code between Cobalt packages
+lofar_add_package(CobaltTest)  # Overall Cobalt tests
diff --git a/RTCP/Cobalt/CobaltTest/CMakeLists.txt b/RTCP/Cobalt/CobaltTest/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4fbdd85c0b4953ec255691c6f4d5b873854ff295
--- /dev/null
+++ b/RTCP/Cobalt/CobaltTest/CMakeLists.txt
@@ -0,0 +1,17 @@
+# $Id$
+
+lofar_package(CobaltTest 1.0 DEPENDS GPUProc OutputProc)
+
+# Handle options USE_CUDA and USE_OPENCL.
+if(USE_CUDA AND NOT USE_OPENCL)
+#  # We need at least CMake 2.8 for CUDA support
+#  cmake_minimum_required(VERSION 2.8)
+
+#  lofar_find_package(CUDA 4.1 REQUIRED)
+
+  add_definitions(-DUSE_CUDA)
+elseif(USE_OPENCL AND NOT USE_CUDA)
+  add_definitions(-DUSE_OPENCL)
+endif()
+
+add_subdirectory(test)
diff --git a/RTCP/Cobalt/CobaltTest/test/CMakeLists.txt b/RTCP/Cobalt/CobaltTest/test/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4b59819a98c2bafc2a1d4cdd42b5601002a02b7f
--- /dev/null
+++ b/RTCP/Cobalt/CobaltTest/test/CMakeLists.txt
@@ -0,0 +1,17 @@
+# $Id$
+
+include(LofarCTest)
+
+configure_file(
+  ${CMAKE_CURRENT_SOURCE_DIR}/setlofarroot.sh.in
+  ${CMAKE_CURRENT_BINARY_DIR}/setlofarroot.sh @ONLY
+)
+
+# Create symbolic link to the outputProc executable used by the tests below.
+get_target_property(_loc outputProc LOCATION)
+execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
+  ${_loc}
+  ${CMAKE_CURRENT_BINARY_DIR}/outputProc)
+
+lofar_add_test(tMultiPartTABOutput tMultiPartTABOutput.cc)
+lofar_add_test(tManyPartTABOutput tManyPartTABOutput.cc)
diff --git a/RTCP/Cobalt/CobaltTest/test/setlofarroot.sh.in b/RTCP/Cobalt/CobaltTest/test/setlofarroot.sh.in
new file mode 100644
index 0000000000000000000000000000000000000000..2fc7be30509a62be91ca4a4fdfd1d2e1d1ad8d14
--- /dev/null
+++ b/RTCP/Cobalt/CobaltTest/test/setlofarroot.sh.in
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+# Set LOFARROOT to GPUProc/ to make runtime GPU kernel compilation work
+# without an install tree.
+#
+# This file must be source'd, not executed!
+#
+# $Id$
+
+export LOFARROOT="@GPUProc_SOURCE_DIR@"
diff --git a/SubSystems/Online_Cobalt/test/tManyPartTABOutput.cc b/RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.cc
similarity index 100%
rename from SubSystems/Online_Cobalt/test/tManyPartTABOutput.cc
rename to RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.cc
diff --git a/SubSystems/Online_Cobalt/test/tManyPartTABOutput.in_SAP0-1sb-P001.raw.gz b/RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.in_SAP0-1sb-P001.raw.gz
similarity index 100%
rename from SubSystems/Online_Cobalt/test/tManyPartTABOutput.in_SAP0-1sb-P001.raw.gz
rename to RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.in_SAP0-1sb-P001.raw.gz
diff --git a/SubSystems/Online_Cobalt/test/tManyPartTABOutput.in_SAP0-4sb-P000.raw.gz b/RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.in_SAP0-4sb-P000.raw.gz
similarity index 100%
rename from SubSystems/Online_Cobalt/test/tManyPartTABOutput.in_SAP0-4sb-P000.raw.gz
rename to RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.in_SAP0-4sb-P000.raw.gz
diff --git a/SubSystems/Online_Cobalt/test/tManyPartTABOutput.in_SAP1-3sb-P002.raw.gz b/RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.in_SAP1-3sb-P002.raw.gz
similarity index 100%
rename from SubSystems/Online_Cobalt/test/tManyPartTABOutput.in_SAP1-3sb-P002.raw.gz
rename to RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.in_SAP1-3sb-P002.raw.gz
diff --git a/SubSystems/Online_Cobalt/test/tManyPartTABOutput.in_SAP1-4sb-P000.raw.gz b/RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.in_SAP1-4sb-P000.raw.gz
similarity index 100%
rename from SubSystems/Online_Cobalt/test/tManyPartTABOutput.in_SAP1-4sb-P000.raw.gz
rename to RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.in_SAP1-4sb-P000.raw.gz
diff --git a/SubSystems/Online_Cobalt/test/tManyPartTABOutput.in_SAP1-4sb-P001.raw.gz b/RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.in_SAP1-4sb-P001.raw.gz
similarity index 100%
rename from SubSystems/Online_Cobalt/test/tManyPartTABOutput.in_SAP1-4sb-P001.raw.gz
rename to RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.in_SAP1-4sb-P001.raw.gz
diff --git a/SubSystems/Online_Cobalt/test/tManyPartTABOutput.parset b/RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.parset
similarity index 100%
rename from SubSystems/Online_Cobalt/test/tManyPartTABOutput.parset
rename to RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.parset
diff --git a/SubSystems/Online_Cobalt/test/tManyPartTABOutput.run b/RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.run
similarity index 97%
rename from SubSystems/Online_Cobalt/test/tManyPartTABOutput.run
rename to RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.run
index e5f1156018042ac34ff09a2bf9235204ae958b12..92d26e87f5275d377a9cd1d860cf5274fa32e33d 100755
--- a/SubSystems/Online_Cobalt/test/tManyPartTABOutput.run
+++ b/RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.run
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-. testFuncs.sh
+. setlofarroot.sh
 
 # remove any output files from prev runs
 rm -rf tManyPartTABOutput-data/
@@ -10,7 +10,7 @@ trap 'kill -9 $outPid' SIGTERM SIGINT SIGQUIT SIGHUP  # don't linger on e.g. Ctr
 
 obsID=123882
 rank=0
-"$LOFARROOT/bin/outputProc" $obsID $rank &
+./outputProc $obsID $rank &
 outPid=$!
 
 ./tManyPartTABOutput
diff --git a/SubSystems/Online_Cobalt/test/tManyPartTABOutput.sh b/RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.sh
similarity index 100%
rename from SubSystems/Online_Cobalt/test/tManyPartTABOutput.sh
rename to RTCP/Cobalt/CobaltTest/test/tManyPartTABOutput.sh
diff --git a/SubSystems/Online_Cobalt/test/tMultiPartTABOutput.cc b/RTCP/Cobalt/CobaltTest/test/tMultiPartTABOutput.cc
similarity index 100%
rename from SubSystems/Online_Cobalt/test/tMultiPartTABOutput.cc
rename to RTCP/Cobalt/CobaltTest/test/tMultiPartTABOutput.cc
diff --git a/SubSystems/Online_Cobalt/test/tMultiPartTABOutput.in_P000.raw.gz b/RTCP/Cobalt/CobaltTest/test/tMultiPartTABOutput.in_P000.raw.gz
similarity index 100%
rename from SubSystems/Online_Cobalt/test/tMultiPartTABOutput.in_P000.raw.gz
rename to RTCP/Cobalt/CobaltTest/test/tMultiPartTABOutput.in_P000.raw.gz
diff --git a/SubSystems/Online_Cobalt/test/tMultiPartTABOutput.in_P001.raw.gz b/RTCP/Cobalt/CobaltTest/test/tMultiPartTABOutput.in_P001.raw.gz
similarity index 100%
rename from SubSystems/Online_Cobalt/test/tMultiPartTABOutput.in_P001.raw.gz
rename to RTCP/Cobalt/CobaltTest/test/tMultiPartTABOutput.in_P001.raw.gz
diff --git a/SubSystems/Online_Cobalt/test/tMultiPartTABOutput.parset b/RTCP/Cobalt/CobaltTest/test/tMultiPartTABOutput.parset
similarity index 100%
rename from SubSystems/Online_Cobalt/test/tMultiPartTABOutput.parset
rename to RTCP/Cobalt/CobaltTest/test/tMultiPartTABOutput.parset
diff --git a/SubSystems/Online_Cobalt/test/tMultiPartTABOutput.run b/RTCP/Cobalt/CobaltTest/test/tMultiPartTABOutput.run
similarity index 94%
rename from SubSystems/Online_Cobalt/test/tMultiPartTABOutput.run
rename to RTCP/Cobalt/CobaltTest/test/tMultiPartTABOutput.run
index 93360f8002b83bdedf6a939e20671a2aa0b344de..3bd7be2252a445ad2fe46cf3eb88c0897a1cd5c5 100755
--- a/SubSystems/Online_Cobalt/test/tMultiPartTABOutput.run
+++ b/RTCP/Cobalt/CobaltTest/test/tMultiPartTABOutput.run
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-. testFuncs.sh
+. setlofarroot.sh
 
 # remove any output files from prev runs
 rm -f tMultiPartTABOutput-L123881_SAP000_B000_P00?_bf.h5 tMultiPartTABOutput-L123881_SAP000_B000_P00?_bf.raw
@@ -10,7 +10,7 @@ trap 'kill -9 $outPid' SIGTERM SIGINT SIGQUIT SIGHUP  # don't linger on e.g. Ctr
 
 obsID=123881
 rank=0
-"$LOFARROOT/bin/outputProc" $obsID $rank &
+./outputProc $obsID $rank &
 outPid=$!
 
 ./tMultiPartTABOutput
diff --git a/SubSystems/Online_Cobalt/test/tMultiPartTABOutput.sh b/RTCP/Cobalt/CobaltTest/test/tMultiPartTABOutput.sh
similarity index 100%
rename from SubSystems/Online_Cobalt/test/tMultiPartTABOutput.sh
rename to RTCP/Cobalt/CobaltTest/test/tMultiPartTABOutput.sh
diff --git a/SubSystems/Online_Cobalt/CMakeLists.txt b/SubSystems/Online_Cobalt/CMakeLists.txt
index c2d05b6577477fd60b4238e9af5f7fb9adb012d3..d2447220e5d1051eacc40f76bca3d4946c9c04dc 100644
--- a/SubSystems/Online_Cobalt/CMakeLists.txt
+++ b/SubSystems/Online_Cobalt/CMakeLists.txt
@@ -3,7 +3,6 @@
 # should cover everything that Online_OutputProc has (e.g. for tests on cbt009)
 #
 # APLCommon is needed for the `swlevel' script
-# GPUProc is in Cobalt, but is apparently needed to link test/tMultiPartTABOutput
-lofar_package(Online_Cobalt DEPENDS Cobalt GPUProc Online_OutputProc APLCommon)
+lofar_package(Online_Cobalt DEPENDS Cobalt Online_OutputProc APLCommon)
 
 add_subdirectory(test)
diff --git a/SubSystems/Online_Cobalt/test/CMakeLists.txt b/SubSystems/Online_Cobalt/test/CMakeLists.txt
index e627789e2a1efb96eccc913f5c6bdfb59f8409e6..5075071e24a855461ded075172b06ad1ca76fbe8 100644
--- a/SubSystems/Online_Cobalt/test/CMakeLists.txt
+++ b/SubSystems/Online_Cobalt/test/CMakeLists.txt
@@ -2,23 +2,6 @@
 
 include(LofarCTest)
 
-if(USE_CUDA AND NOT USE_OPENCL)
-  # We need at least CMake 2.8 for CUDA support
-  cmake_minimum_required(VERSION 2.8)
-
-  lofar_find_package(OpenMP REQUIRED)
-  lofar_find_package(CUDA 4.1 REQUIRED)
-  lofar_find_package(CUDADriver REQUIRED)
-
-  add_definitions(-DUSE_CUDA)
-  if(LOFAR_BUILD_VARIANT MATCHES "^DEBUG$")
-    list(APPEND CUDA_NVCC_FLAGS -g -G)
-  endif()
-
-  lofar_add_test(tMultiPartTABOutput tMultiPartTABOutput.cc)
-  lofar_add_test(tManyPartTABOutput tManyPartTABOutput.cc)
-endif()
-
 foreach(_file testFuncs runtest)
   configure_file(
     ${CMAKE_CURRENT_SOURCE_DIR}/${_file}.sh.in