kopia lustrzana https://github.com/bristol-seds/pico-tracker
Added mem write all test case
rodzic
879f20ad3e
commit
af531b09fe
|
@ -0,0 +1,64 @@
|
||||||
|
#ifndef __verification__
|
||||||
|
#define __verification__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/****************************//* mem_write_all_tc *//****************************/
|
||||||
|
/**
|
||||||
|
* Erases and writes the entire memory chip
|
||||||
|
*/
|
||||||
|
#include "memory.h"
|
||||||
|
|
||||||
|
/* Parameters in */
|
||||||
|
struct mem_write_all_tc_params {
|
||||||
|
|
||||||
|
/* Input paramters to your test case go here */
|
||||||
|
uint8_t page_data[256];
|
||||||
|
|
||||||
|
} mem_write_all_tc_params;
|
||||||
|
/* Results out */
|
||||||
|
struct mem_write_all_tc_results {
|
||||||
|
|
||||||
|
/* Result values should be populated here */
|
||||||
|
uint8_t all_good;
|
||||||
|
uint32_t fail_address;
|
||||||
|
uint8_t fail_wrote, fail_read;
|
||||||
|
|
||||||
|
} mem_write_all_tc_results;
|
||||||
|
/* Function */
|
||||||
|
__verification__ void mem_write_all_tc(void) {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The main body of the test case goes here.
|
||||||
|
*
|
||||||
|
* Use the input parameters to run the test case. Populate the
|
||||||
|
* results structure at the end
|
||||||
|
*/
|
||||||
|
uint8_t page_read[0x100];
|
||||||
|
uint32_t i, j;
|
||||||
|
|
||||||
|
init_memory();
|
||||||
|
mem_chip_erase();
|
||||||
|
|
||||||
|
for (i = 0; i < TOTAL_PAGES; i++) {
|
||||||
|
mem_write_page(i * 0x100, mem_write_all_tc_params.page_data, 0x100);
|
||||||
|
}
|
||||||
|
for (i = 0; i < TOTAL_PAGES; i++) {
|
||||||
|
mem_read_memory(i * 0x100, page_read, 0x100);
|
||||||
|
|
||||||
|
for (j = 0; j < 0x100; j++) {
|
||||||
|
if (page_read[j] != mem_write_all_tc_params.page_data[j]) {
|
||||||
|
/* Error */
|
||||||
|
mem_write_all_tc_results.all_good = 0;
|
||||||
|
mem_write_all_tc_results.fail_address = (i * 0x100) + j;
|
||||||
|
mem_write_all_tc_results.fail_wrote =
|
||||||
|
mem_write_all_tc_params.page_data[i];
|
||||||
|
mem_write_all_tc_results.fail_read = page_read[i];
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* All good */
|
||||||
|
mem_write_all_tc_results.all_good = 1;
|
||||||
|
}
|
|
@ -0,0 +1,53 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Imports
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
import sys
|
||||||
|
sys.path.append("./test")
|
||||||
|
import main
|
||||||
|
|
||||||
|
from random import randint
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Test Script
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class mem_write_all_tc:
|
||||||
|
def __init__(self):
|
||||||
|
self.name = self.__class__.__name__
|
||||||
|
self.iterations = 1
|
||||||
|
|
||||||
|
|
||||||
|
def get_test(self):
|
||||||
|
"""Returns some suitable test parameters"""
|
||||||
|
params = main.struct_mem_write_all_tc_params()
|
||||||
|
|
||||||
|
"""
|
||||||
|
Assign input parameters here
|
||||||
|
"""
|
||||||
|
for i in range(0x100):
|
||||||
|
params.page_data[i] = randint(0, 0xff)
|
||||||
|
|
||||||
|
return params
|
||||||
|
|
||||||
|
def is_correct(self, params, result, print_info):
|
||||||
|
"""Returns if a result is correct for the given parameters"""
|
||||||
|
|
||||||
|
all_good = result['all_good']
|
||||||
|
fail_address = result['fail_address']
|
||||||
|
fail_wrote = result['fail_wrote']
|
||||||
|
fail_read = result['fail_read']
|
||||||
|
"""
|
||||||
|
Compare result and params here, decide sth.
|
||||||
|
Can use print_info
|
||||||
|
"""
|
||||||
|
if not all_good:
|
||||||
|
print_info("Error at index {:#x}: {:#x} != {:#x}"
|
||||||
|
.format(int(fail_address), int(fail_read), int(fail_wrote)))
|
||||||
|
return False
|
||||||
|
|
||||||
|
print_info("All correct!")
|
||||||
|
|
||||||
|
return True
|
Ładowanie…
Reference in New Issue