Ejemplo n.º 1
0
static void test_exit( void )
{
	MOCK_1_CALL( 0, deregister_mtd_blktrans, &blockrom_tr ); 

	_mock_exit_cb();
	TEST_ASSERT( _deregister_mtd_blktrans_called_count, 0, int );

	MOCK_RESET( deregister_mtd_blktrans );
}
Ejemplo n.º 2
0
static void test_init( void )
{
	const int init_ret = 12345;

	MOCK_1_CALL( init_ret, register_mtd_blktrans, &blockrom_tr ); 

	TEST_ASSERT( init_ret, _mock_init_cb(), int );
	TEST_ASSERT( _register_mtd_blktrans_called_count, 0, int );

	MOCK_RESET( register_mtd_blktrans );
}
Ejemplo n.º 3
0
static void test_remove ( void )
{
	struct mtd_blktrans_ops test_ops;
	struct mtd_block_map	test_map;

	const unsigned int 	nr_of_ebs = 4;
	uint32_t   block_map_mem[ nr_of_ebs ];

	memset( &test_map, 	0x00, sizeof(test_map));
        test_map.block_map = block_map_mem;

        MOCK_1_CALL( 0, del_mtd_blktrans_dev, &test_map.dev );
        MOCK_1V_CALL(   kfree, &block_map_mem ); 
        MOCK_1V_CALL(   kfree, &test_map); 

        blockrom_tr.remove_dev( &test_map.dev );

        TEST_ASSERT_CALLED( del_mtd_blktrans_dev, 1 );
        TEST_ASSERT_CALLED( kfree, 2 );
}
Ejemplo n.º 4
0
static void test_add( void )
{
	struct mtd_blktrans_ops test_ops;
	struct mtd_info		test_mtd;
	struct mtd_block_map	test_map;

	const unsigned int 	nr_of_ebs = 4;
	uint32_t   block_map_mem[ nr_of_ebs ];

#ifdef CONFIG_MTD_BLOCK_ROM_DELAYED_INIT
	struct task_struct task;
	test_ops.name  = "spargel";
	test_mtd.index = 1954;
#endif

	test_mtd.erasesize   = 128 * 1024;
	test_mtd.size 	     = test_mtd.erasesize * nr_of_ebs;
	test_mtd.block_isbad = mtd_block_isbad;

	memset( &test_map, 	0x00, sizeof(test_map));
	memset( &block_map_mem, 0x00, sizeof(block_map_mem));
	MOCK_2_CALL( &test_map,      kzalloc, sizeof(test_map), GFP_KERNEL );
	MOCK_2_CALL( &block_map_mem, kzalloc, sizeof(block_map_mem), GFP_KERNEL );

#ifdef CONFIG_MTD_BLOCK_ROM_DELAYED_INIT
	MOCK_5_CALL( &task, kthread_run, blockrom_add_bottom, &test_map, DONT_CHECK_PARAM,
			test_ops.name, test_mtd.index );
	MOCK_CB_SET( kthread_run, my_kthread_run );
#endif

	MOCK_2_CALL( 0, mtd_block_isbad, &test_mtd, test_mtd.erasesize * 0);
	MOCK_2_CALL( 0, mtd_block_isbad, &test_mtd, test_mtd.erasesize * 1);
	MOCK_2_CALL( 1, mtd_block_isbad, &test_mtd, test_mtd.erasesize * 2);
	MOCK_2_CALL( 0, mtd_block_isbad, &test_mtd, test_mtd.erasesize * 3);

	MOCK_1_CALL( 0, add_mtd_blktrans_dev, &test_map.dev );

	blockrom_tr.add_mtd( &test_ops, &test_mtd );

	TEST_ASSERT( test_map.dev.mtd, 	 &test_mtd, struct mtd_info *);
	TEST_ASSERT( test_map.block_map, (uint32_t *)&block_map_mem, uint32_t *);
	TEST_ASSERT( test_map.dev.tr, 	 &test_ops, struct mtd_blktrans_ops* );

	TEST_ASSERT( nr_of_ebs, test_map.blocks_total, uint32_t);
	TEST_ASSERT( 1, test_map.blocks_bad, uint32_t);

	/* check HDD size (in 512 byte blocks); we have 1 bad eraseblock */
	TEST_ASSERT( test_map.dev.size, (test_mtd.size - test_mtd.erasesize) / 512, uint32_t);
	TEST_ASSERT( test_map.dev.readonly, 1, int);

	TEST_ASSERT( test_map.block_map[ 0 ], 0, uint32_t );
	TEST_ASSERT( test_map.block_map[ 1 ], 1, uint32_t );
	TEST_ASSERT( test_map.block_map[ 2 ], 3, uint32_t );
	TEST_ASSERT( test_map.block_map[ 3 ], 4, uint32_t );

	TEST_ASSERT_CALLED( kzalloc, 2);
	TEST_ASSERT_CALLED( mtd_block_isbad, nr_of_ebs);
	TEST_ASSERT_CALLED( add_mtd_blktrans_dev, 1);

	MOCK_RESET( kzalloc );
	MOCK_RESET( mtd_block_isbad );
	MOCK_RESET( add_mtd_blktrans_dev );
#ifdef CONFIG_MTD_BLOCK_ROM_DELAYED_INIT
	MOCK_RESET( kthread_run );
	MOCK_CB_CLEAR( kthread_run );
#endif
}