Skip to content

Commit e79bb3c

Browse files
added single byte test
1 parent 15c19af commit e79bb3c

File tree

1 file changed

+16
-45
lines changed

1 file changed

+16
-45
lines changed

TESTS/API/I2C/I2C.cpp

Lines changed: 16 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ void test_lm75b(){
3838
// Template to write arbitrary data to arbitrary address and check the data is written correctly
3939
template<PinName sda, PinName scl,int size_of_data, int address>
4040
void flash_WR(){
41-
I2CEeprom memory(sda,scl,address,32,0);
41+
I2CEeprom memory(sda,scl,MBED_CONF_APP_I2C_EEPROM_ADDR,32,0);
4242
int num_read = 0;
4343
int num_written = 0;
4444
char test_string[size_of_data] = {0};
@@ -57,47 +57,20 @@ void flash_WR(){
5757

5858
}
5959

60-
//// A test to write the EEprom
61-
//void test_eeprom_W(){
62-
// I2CEeprom memory(sda,scl, address, 32, 0);
63-
// int num_bytes = 0;
64-
// num_bytes = memory.write(addr,I2C_TEST_STRING, I2C_TEST_STRING_MAX);
65-
// printf("\r\n****\r\n WRITE: Num bytes written = `%d`\r\n****\r\n",num_bytes);
66-
// TEST_ASSERT_EQUAL_MESSAGE(num_bytes, I2C_TEST_STRING_MAX,"All data not written."); // check data was written
67-
//}
68-
//
69-
//
70-
//// A test to read the EEprom
71-
//void test_eeprom_R(){
72-
// I2CEeprom memory(MBED_CONF_APP_I2C_SDA,MBED_CONF_APP_I2C_SCL, MBED_CONF_APP_I2C_EEPROM_ADDR, 32, 0);
73-
// char read_string[I2C_TEST_STRING_MAX] = {0};
74-
// int read_bytes = 0;
75-
// read_bytes = memory.read(addr,read_string,I2C_TEST_STRING_MAX);
76-
//
77-
// printf("\r\n****\r\nREAD: Num bytes read = `%d`, string read = `%s`\r\n****\r\n",read_bytes,read_string);
78-
// TEST_ASSERT_EQUAL_MESSAGE(read_bytes, I2C_TEST_STRING_MAX,"Failed to read the correct number of bytes.");
79-
// TEST_ASSERT_EQUAL_STRING_MESSAGE(I2C_TEST_STRING,read_string,"data read does not match data written! bad EEPROM?"); // check data integrity
80-
// TEST_ASSERT_MESSAGE(strcmp(I2C_TEST_STRING,read_string) == 0,"String written does not match string read"); // double check strings with strcmp
81-
//}
82-
//
83-
//// A test to Write then read the eeprom
84-
// void test_eeprom_WR(){
85-
// int address = rand()%250000;
86-
// I2CEeprom memory(MBED_CONF_APP_I2C_SDA,MBED_CONF_APP_I2C_SCL, MBED_CONF_APP_I2C_EEPROM_ADDR, 32, 0);
87-
// int read_bytes = 0;
88-
// int write_bytes = 0;
89-
// char read_string[I2C_TEST_STRING_MAX] = {0};
90-
//
91-
// write_bytes = memory.write(address,I2C_TEST_STRING,I2C_TEST_STRING_MAX);
92-
// read_bytes = memory.read(address,read_string,I2C_TEST_STRING_MAX);
93-
//
94-
// printf("\r\n*****\r\nWRITE READ: Bytes Written = `%d`\r\nBytes Read = `%d` \r\nString Written = `%s`\r\nString Read = `%s`\r\n*****\r\n",write_bytes,read_bytes,I2C_TEST_STRING,read_string);
95-
//
96-
// TEST_ASSERT_MESSAGE(write_bytes == read_bytes,"Number of bytes written does not match number of bytes read");
97-
// TEST_ASSERT_EQUAL_STRING_MESSAGE(I2C_TEST_STRING,read_string,"String read does not match string written");
98-
// TEST_ASSERT_MESSAGE(strcmp(I2C_TEST_STRING,read_string) == 0,"String written does not match string read"); // double check strings with strcmp
99-
//
100-
// }
60+
// Test single byte R/W
61+
template<PinName sda, PinName scl, int address>
62+
void single_byte_WR(){
63+
I2CEeprom memory(sda,scl,MBED_CONF_APP_I2C_EEPROM_ADDR,32,0);
64+
char test = 'A' + rand()%26;
65+
char read;
66+
memory.write(address,test);
67+
memory.read(address,read);
68+
printf("\r\n****\r\n Read byte = %d \r\n Written Byte = %d \r\n****\r\n",&read,&test);
69+
70+
TEST_ASSERT_EQUAL_MESSAGE(test,read,"Character Read does not equal character written!");
71+
TEST_ASSERT_MESSAGE(test == read, "character written does not match character read")
72+
73+
}
10174

10275
utest::v1::status_t test_setup(const size_t number_of_cases) {
10376
// Setup Greentea using a reasonable timeout in seconds
@@ -114,12 +87,10 @@ utest::v1::status_t greentea_failure_handler(const Case *const source, const fai
11487
// Test cases
11588
Case cases[] = {
11689
Case("I2C - LM75B Temperature Read",test_lm75b<MBED_CONF_APP_I2C_SDA,MBED_CONF_APP_I2C_SCL,25,20>,greentea_failure_handler),
117-
//Case("I2C - EEProm Write",test_eeprom_W,greentea_failure_handler),
118-
//Case("I2C - EEProm Read",test_eeprom_R,greentea_failure_handler),
119-
//Case("I2C - EEProm WR",test_eeprom_WR,greentea_failure_handler),
12090
//Case("I2C - EEProm WR 2Bytes",flash_WR<MBED_CONF_APP_I2C_SDA,MBED_CONF_APP_I2C_SCL,2,1>,greentea_failure_handler),
12191
Case("I2C - EEProm WR 10Bytes",flash_WR<MBED_CONF_APP_I2C_SDA,MBED_CONF_APP_I2C_SCL,10,1>,greentea_failure_handler),
12292
Case("I2C - EEProm WR 100 Bytes",flash_WR<MBED_CONF_APP_I2C_SDA,MBED_CONF_APP_I2C_SCL,100,1>,greentea_failure_handler),
93+
Case("I2C - EEProm WR 100 Bytes",single_byte_WR<MBED_CONF_APP_I2C_SDA,MBED_CONF_APP_I2C_SCL,1>,greentea_failure_handler),
12394
};
12495

12596
Specification specification(test_setup, cases);

0 commit comments

Comments
 (0)