diff --git a/jiri-test/internal/test/android.go b/jiri-test/internal/test/android.go
index 401b1be..0fec74b 100644
--- a/jiri-test/internal/test/android.go
+++ b/jiri-test/internal/test/android.go
@@ -17,3 +17,8 @@
 func vanadiumMomentsTest(jirix *jiri.X, testName string, opts ...Opt) (_ *test.Result, e error) {
 	return runJavaTest(jirix, testName, []string{"release", "java", "projects", "moments"}, []string{"assembleDebug", "test"})
 }
+
+// vanadiumDicerollerAndroidTest tests the diceroller android app.
+func vanadiumDicerollerAndroidTest(jirix *jiri.X, testName string, opts ...Opt) (_ *test.Result, e error) {
+	return runJavaTest(jirix, testName, []string{"release", "java", "projects", "dice_roller"}, []string{"assembleDebug", "test"})
+}
diff --git a/jiri-test/internal/test/java.go b/jiri-test/internal/test/java.go
index 2011c8a..d6f9ad8 100644
--- a/jiri-test/internal/test/java.go
+++ b/jiri-test/internal/test/java.go
@@ -49,3 +49,8 @@
 func vanadiumJavaTest(jirix *jiri.X, testName string, opts ...Opt) (_ *test.Result, e error) {
 	return runJavaTest(jirix, testName, []string{"release", "java"}, []string{":lib:clean", ":lib:check"})
 }
+
+// vanadiumJavaSyncbaseTest runs all Java Syncbase high-level API unit tests.
+func vanadiumJavaSyncbaseTest(jirix *jiri.X, testName string, opts ...Opt) (_ *test.Result, e error) {
+	return runJavaTest(jirix, testName, []string{"release", "java", "syncbase"}, []string{"clean", "test"})
+}
diff --git a/jiri-test/internal/test/run.go b/jiri-test/internal/test/run.go
index 4c44155..3fb3543 100644
--- a/jiri-test/internal/test/run.go
+++ b/jiri-test/internal/test/run.go
@@ -90,6 +90,7 @@
 	"vanadium-copyright":                              vanadiumCopyright,
 	"vanadium-croupier-unit":                          vanadiumCroupierTestUnit,
 	"vanadium-croupier-unit-go":                       vanadiumCroupierTestUnitGo,
+	"vanadium-diceroller-android-test":                vanadiumDicerollerAndroidTest,
 	"vanadium-github-mirror":                          vanadiumGitHubMirror,
 	"vanadium-go-api":                                 vanadiumGoAPI,
 	"vanadium-go-bench":                               vanadiumGoBench,
@@ -107,6 +108,7 @@
 	"vanadium-go-rpc-stress":                          vanadiumGoRPCStress,
 	"vanadium-go-rpc-load":                            vanadiumGoRPCLoad,
 	"vanadium-integration-test":                       vanadiumIntegrationTest,
+	"vanadium-java-syncbase-test":                     vanadiumJavaSyncbaseTest,
 	"vanadium-java-test":                              vanadiumJavaTest,
 	"vanadium-js-build-extension":                     vanadiumJSBuildExtension,
 	"vanadium-js-doc":                                 vanadiumJSDoc,
diff --git a/tooldata/data/config.v1.xml b/tooldata/data/config.v1.xml
index 3c35216..5078a2b 100644
--- a/tooldata/data/config.v1.xml
+++ b/tooldata/data/config.v1.xml
@@ -219,6 +219,8 @@
       <test>baku-android-build</test>
       <test>baku-java-test</test>
       <test>vanadium-android-build</test>
+      <test>vanadium-diceroller-android-test</test>
+      <test>vanadium-java-syncbase-test</test>
       <test>vanadium-java-test</test>
     </group>
     <group name="mojo">
