Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
/*
 * Copyright (c) 2017 Nordic Semiconductor ASA
 * Copyright (c) 2015 Runtime Inc
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include "fcb_test.h"

void test_fcb_append(void)
{
	int rc;
	struct fcb *fcb;
	struct fcb_entry loc;
	uint8_t test_data[128];
	int i;
	int j;
	int var_cnt;

	fcb = &test_fcb;

	for (i = 0; i < sizeof(test_data); i++) {
		for (j = 0; j < i; j++) {
			test_data[j] = fcb_test_append_data(i, j);
		}
		rc = fcb_append(fcb, i, &loc);
		zassert_true(rc == 0, "fcb_append call failure");
		rc = flash_area_write(fcb->fap, FCB_ENTRY_FA_DATA_OFF(loc),
				      test_data, i);
		zassert_true(rc == 0, "flash_area_write call failure");
		rc = fcb_append_finish(fcb, &loc);
		zassert_true(rc == 0, "fcb_append_finish call failure");
	}

	var_cnt = 0;
	rc = fcb_walk(fcb, 0, fcb_test_data_walk_cb, &var_cnt);
	zassert_true(rc == 0, "fcb_walk call failure");
	zassert_true(var_cnt == sizeof(test_data),
		     "fetched data size not match to wrote data size");
}