diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9355b0bc4c61e3dd340178a84a399c9d920d66a7
--- /dev/null
+++ b/test/CMakeLists.txt
@@ -0,0 +1,97 @@
+otb_module_test()
+
+otb_test_application(NAME apLSGRM_BaatzCriterion
+					APP LSGRM
+					OPTIONS -in ${INPUTDATA}/QB_Toulouse_Ortho_XS.tif
+					-out ${TEMP}/apLSGRMLabeledImage.tif int16
+					-criterion bs
+					-threshold 60
+					-criterion.bs.cw 0.7
+					-criterion.bs.sw 0.3
+)
+
+otb_test_application(NAME apLSGRM_EuclideanDistanceCriterion
+					APP LSGRM
+					OPTIONS -in ${INPUTDATA}/QB_Toulouse_Ortho_XS.tif
+					-out ${TEMP}/apLSGRMLabeledImage.tif int16
+					-criterion ed
+					-threshold 30
+)
+
+otb_test_application(NAME apLSGRM_FullLambdaScheduleCriterion
+					APP LSGRM
+					OPTIONS -in ${INPUTDATA}/QB_Toulouse_Ortho_XS.tif
+					-out ${TEMP}/apLSGRMLabeledImage.tif int16
+					-criterion fls
+					-threshold 500
+)
+
+otb_test_application(NAME apLSGRM_BaatzCriterionWithFixedNumberOfIterations
+					APP LSGRM
+					OPTIONS -in ${INPUTDATA}/QB_Toulouse_Ortho_XS.tif
+					-out ${TEMP}/apLSGRMLabeledImage.tif int16
+					-niter 75
+					-criterion bs
+					-threshold 60
+					-criterion.bs.cw 0.7
+					-criterion.bs.sw 0.3
+)
+
+otb_test_application(NAME apLSGRM_BaatzCriterionWithFixedNumberOfIterationsUserTiling
+					APP LSGRM
+					OPTIONS -in ${INPUTDATA}/QB_Toulouse_Ortho_XS.tif
+					-out ${TEMP}/apLSGRMLabeledImage.tif int16
+					-niter 75
+					-criterion bs
+					-threshold 60
+					-criterion.bs.cw 0.7
+					-criterion.bs.sw 0.3
+					-tiling user
+					-tiling.user.sizex 250
+					-tiling.user.sizey 250
+					-tiling.user.nfirstiter 4
+)
+
+otb_test_application(NAME apLSGRM_EuclideanDistanceCriterionWithFixedNumberOfIterations
+					APP LSGRM
+					OPTIONS -in ${INPUTDATA}/QB_Toulouse_Ortho_XS.tif
+					-out ${TEMP}/apLSGRMLabeledImage.tif int16
+					-niter 75
+					-criterion ed
+					-threshold 30
+)
+
+otb_test_application(NAME apLSGRM_EuclideanDistanceCriterionWithFixedNumberOfIterationsUserTiling
+					APP LSGRM
+					OPTIONS -in ${INPUTDATA}/QB_Toulouse_Ortho_XS.tif
+					-out ${TEMP}/apLSGRMLabeledImage.tif int16
+					-niter 75
+					-criterion ed
+					-threshold 30
+					-tiling user
+					-tiling.user.sizex 250
+					-tiling.user.sizey 250
+					-tiling.user.nfirstiter 4
+)
+
+otb_test_application(NAME apLSGRM_FullLambdaScheduleCriterionWithFixedNumberOfIterations
+					APP LSGRM
+					OPTIONS -in ${INPUTDATA}/QB_Toulouse_Ortho_XS.tif
+					-out ${TEMP}/apLSGRMLabeledImage.tif int16
+					-niter 75
+					-criterion fls
+					-threshold 500
+)
+
+otb_test_application(NAME apLSGRM_FullLambdaScheduleCriterionWithFixedNumberOfIterationsUserTiling
+					APP LSGRM
+					OPTIONS -in ${INPUTDATA}/QB_Toulouse_Ortho_XS.tif
+					-out ${TEMP}/apLSGRMLabeledImage.tif int16
+					-niter 75
+					-criterion fls
+					-threshold 500
+					-tiling user
+					-tiling.user.sizex 250
+					-tiling.user.sizey 250
+					-tiling.user.nfirstiter 4
+)