diff --git a/shiva/src/test/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaTest.scala b/shiva/src/test/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaTest.scala
index eb1d40ece24ce6862023eae3343b84c840ea3e42..ce27e22ba55bcf42fa796de71672965b454d21a9 100644
--- a/shiva/src/test/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaTest.scala
+++ b/shiva/src/test/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaTest.scala
@@ -58,7 +58,9 @@ trait ShivaTestTrait extends TestNGSuite with Matchers {
   def multisampleCalling: Boolean = true
   def sampleCalling = false
   def libraryCalling = false
-  def dbsnp: Boolean = true
+  def dbsnp = true
+  def svCalling = false
+  def annotation = false
 
   @Test(dataProvider = "shivaOptions")
   def testShiva(f: String, sample1: Boolean, sample2: Boolean,
@@ -73,7 +75,9 @@ trait ShivaTestTrait extends TestNGSuite with Matchers {
         "single_sample_variantcalling" -> sampleCalling,
         "library_variantcalling" -> libraryCalling,
         "use_indel_realigner" -> realign,
-        "use_base_recalibration" -> baseRecalibration), m)
+        "use_base_recalibration" -> baseRecalibration,
+        "sv_calling" -> svCalling,
+        "annotation" -> annotation), m)
 
     }
 
@@ -96,6 +100,19 @@ trait ShivaTestTrait extends TestNGSuite with Matchers {
       pipeline.functions.count(_.isInstanceOf[BaseRecalibrator]) shouldBe (if (dbsnp && baseRecalibration) (numberLibs * 2) else 0)
       pipeline.functions.count(_.isInstanceOf[PrintReads]) shouldBe (if (dbsnp && baseRecalibration) numberLibs else 0)
 
+      pipeline.summarySettings.get("annotation") shouldBe Some(annotation)
+      pipeline.summarySettings.get("sv_calling") shouldBe Some(svCalling)
+
+      pipeline.samples foreach { case (sampleId, sample) =>
+        sample.summarySettings.get("single_sample_variantcalling") shouldBe Some(sampleCalling)
+        sample.summarySettings.get("use_indel_realigner") shouldBe Some(realign)
+        sample.libraries.foreach { case (libId, lib) =>
+          lib.summarySettings.get("library_variantcalling") shouldBe Some(libraryCalling)
+          lib.summarySettings.get("use_indel_realigner") shouldBe Some(realign)
+          lib.summarySettings.get("use_base_recalibration") shouldBe Some(baseRecalibration && dbsnp)
+        }
+      }
+
       pipeline.functions.count(_.isInstanceOf[VcfStats]) shouldBe (
         (if (multisampleCalling) 2 else 0) +
         (if (sampleCalling) numberSamples * 2 else 0) +
@@ -125,6 +142,20 @@ class ShivaSampleCallingTest extends ShivaTestTrait {
   override def baseRecalibrationProvider = Array(false)
   override def sampleCalling = true
 }
+class ShivaWithSvCallingTest extends ShivaTestTrait {
+  override def sample1 = Array(true)
+  override def sample2 = Array(false)
+  override def realignProvider = Array(false)
+  override def baseRecalibrationProvider = Array(false)
+  override def svCalling = true
+}
+class ShivaWithAnnotationTest extends ShivaTestTrait {
+  override def sample1 = Array(true)
+  override def sample2 = Array(false)
+  override def realignProvider = Array(false)
+  override def baseRecalibrationProvider = Array(false)
+  override def annotation = true
+}
 
 object ShivaTest {
   val outputDir = Files.createTempDir()
@@ -170,7 +201,18 @@ object ShivaTest {
     "wigtobigwig" -> Map("exe" -> "test"),
     "md5sum" -> Map("exe" -> "test"),
     "bgzip" -> Map("exe" -> "test"),
-    "tabix" -> Map("exe" -> "test")
+    "tabix" -> Map("exe" -> "test"),
+    "breakdancerconfig" -> Map("exe" -> "test"),
+    "breakdancercaller" -> Map("exe" -> "test"),
+    "pindelconfig" -> Map("exe" -> "test"),
+    "pindelcaller" -> Map("exe" -> "test"),
+    "pindelvcf" -> Map("exe" -> "test"),
+    "clever" -> Map("exe" -> "test"),
+    "delly" -> Map("exe" -> "test"),
+    "pysvtools" -> Map(
+      "exe" -> "test",
+      "exclusion_regions" -> "test",
+      "translocations_only" -> false)
   )
 
   val sample1 = Map(