diff --git a/lib/common/cmp_data_types.c b/lib/common/cmp_data_types.c
index 2ab46997efff58f31321cce4f25cdb96e18168ae..778195fd6b0816a7e0fe931469092d0cd46689ee 100644
--- a/lib/common/cmp_data_types.c
+++ b/lib/common/cmp_data_types.c
@@ -894,7 +894,6 @@ int be_to_cpu_data_type(void *data, uint32_t data_size_byte, enum cmp_data_type
 		be_to_cpus_f_fx_efx_ncob_ecob(data, samples);
 		break;
 	/* LCOV_EXCL_START */
-	case DATA_TYPE_UNKNOWN:
 	default:
 		debug_print("Error: Can not swap endianness for this compression data type.");
 		return -1;
diff --git a/lib/rdcu_compress/cmp_rdcu_cfg.c b/lib/rdcu_compress/cmp_rdcu_cfg.c
index 09ab8286482af1d4fd55979b699ea65657e5f8ab..9db8354f51fa569accc9ddb995bcea369249ac95 100644
--- a/lib/rdcu_compress/cmp_rdcu_cfg.c
+++ b/lib/rdcu_compress/cmp_rdcu_cfg.c
@@ -158,7 +158,7 @@ static int rdcu_cfg_buffers_is_invalid(const struct rdcu_cfg *rcfg)
 
 	if (rcfg->cmp_mode == CMP_MODE_RAW) {
 		if (rcfg->buffer_length < rcfg->samples) {
-			debug_print("rdcu_buffer_length is smaller than the samples parameter. There is not enough space to copy the data in RAW mode.");
+			debug_print("Error: rdcu_buffer_length is smaller than the samples parameter. There is not enough space to copy the data in RAW mode.");
 			rcfg_invalid++;
 		}
 	}
diff --git a/test/cmp_data_types/test_cmp_data_types.c b/test/cmp_data_types/test_cmp_data_types.c
index 0f43ed5f4634c47186dcd24e1991b74ea99ac4dc..1bc0de4df864819bc211e465d5467d80a3b1ba34 100644
--- a/test/cmp_data_types/test_cmp_data_types.c
+++ b/test/cmp_data_types/test_cmp_data_types.c
@@ -284,6 +284,27 @@ void test_be_to_cpu_chunk(void)
 {
 	enum cmp_data_type data_type;
 
+	{
+		struct {
+			uint8_t hdr[COLLECTION_HDR_SIZE];
+			uint16_t entry[2];
+		} __attribute__((packed)) data = {0};
+
+		data_type = DATA_TYPE_IMAGETTE;
+		data.entry[0] = 0x0001;
+		data.entry[1] = 0x0203;
+		check_endianness(&data, sizeof(data), data_type);
+
+		data_type = DATA_TYPE_SAT_IMAGETTE;
+		data.entry[0] = 0x0001;
+		data.entry[1] = 0x0203;
+		check_endianness(&data, sizeof(data), data_type);
+
+		data_type = DATA_TYPE_F_CAM_IMAGETTE;
+		data.entry[0] = 0x0001;
+		data.entry[1] = 0x0203;
+		check_endianness(&data, sizeof(data), data_type);
+	}
 	{
 		struct {
 			uint8_t hdr[COLLECTION_HDR_SIZE];
@@ -678,4 +699,34 @@ void test_cmp_input_big_to_cpu_endianness_error_cases(void)
 	data_type = DATA_TYPE_UNKNOWN;
 	error = cmp_input_big_to_cpu_endianness(data, data_size_byte, data_type);
 	TEST_ASSERT_EQUAL(-1, error);
+
+	{ /* test adaptive data types */
+		size_t i;
+		uint16_t data_ap[2];
+
+		data_type = DATA_TYPE_IMAGETTE_ADAPTIVE;
+		data_ap[0] = 0x0001;
+		data_ap[1] = 0x0203;
+		error = cmp_input_big_to_cpu_endianness(data_ap, sizeof(data_ap), data_type);
+		TEST_ASSERT_EQUAL(00, error);
+		for (i = 0; i < sizeof(data_ap); i++)
+			TEST_ASSERT_EQUAL(i, ((uint8_t*)data_ap)[i] );
+
+		data_type = DATA_TYPE_SAT_IMAGETTE_ADAPTIVE;
+		data_ap[0] = 0x0001;
+		data_ap[1] = 0x0203;
+		error = cmp_input_big_to_cpu_endianness(data_ap, sizeof(data_ap), data_type);
+		TEST_ASSERT_EQUAL(00, error);
+		for (i = 0; i < sizeof(data_ap); i++)
+			TEST_ASSERT_EQUAL(i, ((uint8_t*)data_ap)[i] );
+
+		data_type = DATA_TYPE_F_CAM_IMAGETTE_ADAPTIVE;
+		data_ap[0] = 0x0001;
+		data_ap[1] = 0x0203;
+		error = cmp_input_big_to_cpu_endianness(data_ap, sizeof(data_ap), data_type);
+		TEST_ASSERT_EQUAL(00, error);
+		for (i = 0; i < sizeof(data_ap); i++)
+			TEST_ASSERT_EQUAL(i, ((uint8_t*)data_ap)[i] );
+	}
+
 }
diff --git a/test/cmp_entity/test_cmp_entity.c b/test/cmp_entity/test_cmp_entity.c
index 4746d32e74454b3802a49e03f7c2c8142dc05dc4..ef4f3d9e4dc87671f7d19525f7274f4c939de2a6 100644
--- a/test/cmp_entity/test_cmp_entity.c
+++ b/test/cmp_entity/test_cmp_entity.c
@@ -1344,6 +1344,62 @@ void test_cmp_ent_get_data_buf(void)
 }
 
 
+/**
+ * @test cmp_ent_get_data_buf_const
+ */
+
+void test_cmp_ent_get_data_buf_const(void)
+{
+	enum cmp_data_type data_type;
+	struct cmp_entity ent = {0};
+	const char *adr;
+	uint32_t s, hdr_size;
+	int error;
+
+	for (data_type = DATA_TYPE_IMAGETTE;
+	     data_type <= DATA_TYPE_F_CAM_BACKGROUND;
+	     data_type++) {
+		s = cmp_ent_create(&ent, data_type, 0, 0);
+		TEST_ASSERT_NOT_EQUAL_INT(0, s);
+
+		adr = cmp_ent_get_data_buf_const(&ent);
+		TEST_ASSERT_NOT_NULL(adr);
+
+		hdr_size = cmp_ent_cal_hdr_size(data_type, 0);
+		TEST_ASSERT_EQUAL_INT(hdr_size, adr-(char *)&ent);
+	}
+
+	/* RAW mode test */
+	for (data_type = DATA_TYPE_IMAGETTE;
+	     data_type <= DATA_TYPE_CHUNK;
+	     data_type++) {
+		s = cmp_ent_create(&ent, data_type, 1, 0);
+		TEST_ASSERT_NOT_EQUAL_INT(0, s);
+
+		adr = cmp_ent_get_data_buf_const(&ent);
+		TEST_ASSERT_NOT_NULL(adr);
+
+		hdr_size = cmp_ent_cal_hdr_size(data_type, 1);
+		TEST_ASSERT_EQUAL_INT(hdr_size, adr-(char *)&ent);
+	}
+
+	/* ent = NULL test */
+	adr = cmp_ent_get_data_buf_const(NULL);
+	TEST_ASSERT_NULL(adr);
+
+	/* compression data type not supported test */
+	error = cmp_ent_set_data_type(&ent, DATA_TYPE_UNKNOWN, 0);
+	TEST_ASSERT_FALSE(error);
+	adr = cmp_ent_get_data_buf_const(&ent);
+	TEST_ASSERT_NULL(adr);
+
+	error = cmp_ent_set_data_type(&ent, (enum cmp_data_type)234, 1);
+	TEST_ASSERT_FALSE(error);
+	adr = cmp_ent_get_data_buf_const(&ent);
+	TEST_ASSERT_NULL(adr);
+}
+
+
 /**
  * @test cmp_ent_get_cmp_data
  */
diff --git a/test/cmp_icu/test_cmp_icu.c b/test/cmp_icu/test_cmp_icu.c
index 2d8322639201e831a5a4630af0532b4b21eaf8cf..f2cadf617fefee3ba39ecb568a1da3cd12d3adef 100644
--- a/test/cmp_icu/test_cmp_icu.c
+++ b/test/cmp_icu/test_cmp_icu.c
@@ -1259,7 +1259,7 @@ void test_compress_imagette_model(void)
 	uint16_t data[]  = {0x0000, 0x0001, 0x0042, 0x8000, 0x7FFF, 0xFFFF, 0xFFFF};
 	uint16_t model[] = {0x0000, 0xFFFF, 0xF301, 0x8FFF, 0x0000, 0xFFFF, 0x0000};
 	uint16_t model_up[7] = {0};
-	uint32_t output_buf[3] = {~0U, ~0U, ~0U};
+	uint32_t output_buf[4] = {~0U, ~0U, ~0U, ~0U};
 	struct rdcu_cfg rcfg = {0};
 	uint32_t model_value = 8;
 	uint32_t samples = 7;
@@ -1450,6 +1450,48 @@ void test_compress_imagette_error_cases(void)
 	cmp_size = compress_like_rdcu(&rcfg, NULL);
 	TEST_ASSERT_TRUE(cmp_is_error(cmp_size));
 	TEST_ASSERT_EQUAL_INT(CMP_ERROR_PAR_SPECIFIC, cmp_get_error_code(cmp_size));
+
+	/* test golomb_par  to hight */
+	rcfg.cmp_mode = CMP_MODE_DIFF_ZERO;
+	rcfg.input_buf = data;
+	rcfg.samples = 2;
+	rcfg.golomb_par = MAX_CHUNK_CMP_PAR+1;
+	rcfg.spill = 8;
+	rcfg.icu_output_buf = (uint32_t *)output_buf;
+	rcfg.buffer_length = 4;
+
+	cmp_size = compress_like_rdcu(&rcfg, NULL);
+	TEST_ASSERT_TRUE(cmp_is_error(cmp_size));
+	TEST_ASSERT_EQUAL_INT(CMP_ERROR_PAR_SPECIFIC, cmp_get_error_code(cmp_size));
+
+	/* round to hight */
+	rcfg.cmp_mode = CMP_MODE_DIFF_ZERO;
+	rcfg.input_buf = data;
+	rcfg.samples = 2;
+	rcfg.golomb_par = MAX_CHUNK_CMP_PAR;
+	rcfg.spill = 8;
+	rcfg.icu_output_buf = (uint32_t *)output_buf;
+	rcfg.buffer_length = 4;
+	rcfg.round = MAX_ICU_ROUND+1;
+
+	cmp_size = compress_like_rdcu(&rcfg, NULL);
+	TEST_ASSERT_TRUE(cmp_is_error(cmp_size));
+	TEST_ASSERT_EQUAL_INT(CMP_ERROR_PAR_GENERIC, cmp_get_error_code(cmp_size));
+
+	/* model_value to hight */
+	rcfg.cmp_mode = CMP_MODE_MODEL_ZERO;
+	rcfg.input_buf = data;
+	rcfg.samples = 2;
+	rcfg.golomb_par = MAX_CHUNK_CMP_PAR;
+	rcfg.spill = 8;
+	rcfg.icu_output_buf = (uint32_t *)output_buf;
+	rcfg.buffer_length = 4;
+	rcfg.round = MAX_ICU_ROUND;
+	rcfg.model_value = MAX_MODEL_VALUE+1;
+
+	cmp_size = compress_like_rdcu(&rcfg, NULL);
+	TEST_ASSERT_TRUE(cmp_is_error(cmp_size));
+	TEST_ASSERT_EQUAL_INT(CMP_ERROR_PAR_GENERIC, cmp_get_error_code(cmp_size));
 }
 
 
@@ -1844,6 +1886,26 @@ void test_compress_chunk_aux(void)
 	cmp_size = compress_chunk(chunk, CHUNK_SIZE, NULL, NULL, dst,
 				  dst_capacity, &cmp_par);
 	TEST_ASSERT_EQUAL_INT(CMP_ERROR_PAR_SPECIFIC, cmp_get_error_code(cmp_size));
+
+	cmp_par.nc_background_outlier_pixels = MAX_CHUNK_CMP_PAR+1;
+	cmp_size = compress_chunk(chunk, CHUNK_SIZE, NULL, NULL, dst,
+				  dst_capacity, &cmp_par);
+	TEST_ASSERT_EQUAL_INT(CMP_ERROR_PAR_SPECIFIC, cmp_get_error_code(cmp_size));
+
+	/* wrong cmp_mode */
+	cmp_par.nc_background_outlier_pixels = MAX_CHUNK_CMP_PAR;
+	cmp_par.cmp_mode = 5;
+	cmp_size = compress_chunk(chunk, CHUNK_SIZE, NULL, NULL, dst,
+				  dst_capacity, &cmp_par);
+	TEST_ASSERT_EQUAL_INT(CMP_ERROR_PAR_GENERIC, cmp_get_error_code(cmp_size));
+
+	/* wrong model value */
+	cmp_par.cmp_mode = CMP_MODE_MODEL_ZERO;
+	cmp_par.model_value = MAX_MODEL_VALUE +1 ;
+	cmp_size = compress_chunk(chunk, CHUNK_SIZE, NULL, NULL, dst,
+				  dst_capacity, &cmp_par);
+	TEST_ASSERT_EQUAL_INT(CMP_ERROR_PAR_GENERIC, cmp_get_error_code(cmp_size));
+	free(dst);
 }
 
 
@@ -2430,16 +2492,43 @@ void test_support_function_call_NULL(void)
 {
 	struct cmp_cfg cfg = {0};
 
-	cfg.data_type = DATA_TYPE_IMAGETTE;
 	cfg.cmp_mode = CMP_MODE_DIFF_ZERO;
 
 	TEST_ASSERT_TRUE(cmp_cfg_gen_par_is_invalid(NULL));
+	TEST_ASSERT_TRUE(cmp_cfg_gen_par_is_invalid(&cfg));
+	cfg.data_type = DATA_TYPE_F_FX_EFX;
+	TEST_ASSERT_TRUE(cmp_cfg_imagette_is_invalid(&cfg));
 	TEST_ASSERT_TRUE(cmp_cfg_imagette_is_invalid(NULL));
+	cfg.data_type = DATA_TYPE_IMAGETTE;
 	TEST_ASSERT_TRUE(cmp_cfg_fx_cob_is_invalid(NULL));
+	TEST_ASSERT_TRUE(cmp_cfg_fx_cob_is_invalid(&cfg));
 	TEST_ASSERT_TRUE(cmp_cfg_aux_is_invalid(NULL));
 	TEST_ASSERT_TRUE(cmp_cfg_aux_is_invalid(&cfg));
+	TEST_ASSERT_FALSE(cmp_aux_data_type_is_used(DATA_TYPE_S_FX));
 	TEST_ASSERT_TRUE(cmp_cfg_fx_cob_get_need_pars(DATA_TYPE_S_FX, NULL));
 	TEST_ASSERT_TRUE(check_compression_buffers(NULL));
+	cfg.cmp_mode = 5;
+	TEST_ASSERT_TRUE(cmp_cfg_imagette_is_invalid(&cfg));
+}
+
+
+/*
+ * @test cmp_cfg_fx_cob_get_need_pars
+ */
+
+void test_missing_cmp_cfg_fx_cob_get_need_pars(void)
+{
+	struct fx_cob_par used_par;
+	enum cmp_data_type data_type;
+
+	data_type = DATA_TYPE_F_FX;
+	TEST_ASSERT_FALSE(cmp_cfg_fx_cob_get_need_pars(data_type, &used_par));
+	data_type = DATA_TYPE_F_FX_EFX;
+	TEST_ASSERT_FALSE(cmp_cfg_fx_cob_get_need_pars(data_type, &used_par));
+	data_type = DATA_TYPE_F_FX_NCOB;
+	TEST_ASSERT_FALSE(cmp_cfg_fx_cob_get_need_pars(data_type, &used_par));
+	data_type = DATA_TYPE_F_FX_EFX_NCOB_ECOB;
+	TEST_ASSERT_FALSE(cmp_cfg_fx_cob_get_need_pars(data_type, &used_par));
 }
 
 
@@ -2475,11 +2564,10 @@ void test_print_cmp_info(void)
 
 void test_buffer_overlaps(void)
 {
-	char buf_a[3];
-	char buf_b[3];
+	char buf_a[3] = {0};
+	char buf_b[3] = {0};
 	int overlap;
 
-
 	overlap = buffer_overlaps(buf_a, sizeof(buf_a), buf_b, sizeof(buf_b));
 	TEST_ASSERT_FALSE(overlap);
 	overlap = buffer_overlaps(NULL, sizeof(buf_a), buf_b, sizeof(buf_b));
@@ -2499,3 +2587,20 @@ void test_buffer_overlaps(void)
 }
 
 
+/**
+ * @test cmp_get_error_string
+ */
+
+void test_cmp_get_error_string(void)
+{
+	enum cmp_error code;
+	const char *str;
+
+	for (code = CMP_ERROR_NO_ERROR; code <= CMP_ERROR_MAX_CODE; code++) {
+		str = cmp_get_error_string(code);
+		TEST_ASSERT_NOT_EQUAL('\0', str[0]);
+
+		str = cmp_get_error_name((-code));
+		TEST_ASSERT_NOT_EQUAL('\0', str[0]);
+	}
+}