diff --git a/.arduino-ci.yml b/.arduino-ci.yml new file mode 100644 index 0000000..ff5659b --- /dev/null +++ b/.arduino-ci.yml @@ -0,0 +1,7 @@ +compile: + # Choosing to run compilation tests on 2 different Arduino platforms + platforms: + - uno + - leonardo + - due + - zero diff --git a/.github/workflows/arduino_test_runner.yml b/.github/workflows/arduino_test_runner.yml new file mode 100644 index 0000000..476456b --- /dev/null +++ b/.github/workflows/arduino_test_runner.yml @@ -0,0 +1,13 @@ +--- +name: Arduino CI + +on: [push, pull_request] + +jobs: + arduino_ci: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - uses: Arduino-CI/action@master + # Arduino-CI/action@v0.1.1 diff --git a/I2C_eeprom.h b/I2C_eeprom.h index 8b91959..7e625b6 100644 --- a/I2C_eeprom.h +++ b/I2C_eeprom.h @@ -60,7 +60,6 @@ public: int determineSize(); - private: uint8_t _deviceAddress; uint32_t _lastWrite; // for waitEEReady diff --git a/README.md b/README.md index 455f10b..b314d9b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ + +[![Arduino CI](https://github.com/RobTillaart/I2C_EEPROM/workflows/Arduino%20CI/badge.svg)](https://github.com/marketplace/actions/arduino_ci) +[![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/RobTillaart/I2C_EEPROM/blob/master/LICENSE) +[![GitHub release](https://img.shields.io/github/release/RobTillaart/I2C_EEPROM.svg?maxAge=3600)](https://github.com/RobTillaart/I2C_EEPROM/releases) + # I2C_EEPROM Arduino Library for external I2C EEPROM - 24LC256, 24LC64 @@ -8,13 +13,14 @@ Library to access external I2C EEPROM. The interface is pretty straightforward -* readByte - read a single byte from a given address -* writeByte -* setBlock -* readBlock -* writeBlock -* determineSize - +- **begin()** constructor +- **begin(sda, scl)** constructor for ESP32 +- **writeByte(address, value)** write a single byte +- **writeBlock(address, buffer, length)** +- **setBlock(address, value, length)** e.g. use to clear I2C EEPROM +- **readByte(address)** - read a single byte from a given address +- **readBlock(address, buffer, length)** +- **determineSize()** ## Limitation diff --git a/test/unit_test_001.cpp b/test/unit_test_001.cpp new file mode 100644 index 0000000..fc419b6 --- /dev/null +++ b/test/unit_test_001.cpp @@ -0,0 +1,68 @@ +// +// FILE: unit_test_001.cpp +// AUTHOR: Rob Tillaart +// DATE: 2020-12-22 +// PURPOSE: unit tests for the I2C_EEPROM library +// https://github.com/RobTillaart/ +// https://github.com/Arduino-CI/arduino_ci/blob/master/REFERENCE.md +// + +// supported assertions +// https://github.com/Arduino-CI/arduino_ci/blob/master/cpp/unittest/Assertion.h#L33-L42 +// ---------------------------- +// assertEqual(expected, actual) +// assertNotEqual(expected, actual) +// assertLess(expected, actual) +// assertMore(expected, actual) +// assertLessOrEqual(expected, actual) +// assertMoreOrEqual(expected, actual) +// assertTrue(actual) +// assertFalse(actual) +// assertNull(actual) +// assertNotNull(actual) + +#include + +#define assertEqualFloat(arg1, arg2, arg3) assertOp("assertEqualFloat", "expected", fabs(arg1 - arg2), compareLessOrEqual, "<=", "actual", arg3) +#define assertEqualINF(arg) assertOp("assertEqualINF", "expected", INFINITY, compareEqual, "==", "actual", arg) +#define assertEqualNAN(arg) assertOp("assertEqualNAN", "expected", true, compareEqual, "==", "actual", isnan(arg)) + + +#include "Arduino.h" +#include "I2C_eeprom.h" + + + +unittest_setup() +{ +} + +unittest_teardown() +{ +} + +/* +unittest(test_new_operator) +{ + assertEqualINF(exp(800)); + assertEqualINF(0.0/0.0); + assertEqualINF(42); + + assertEqualNAN(INFINITY - INFINITY); + assertEqualNAN(0.0/0.0); + assertEqualNAN(42); +} +*/ + +unittest(test_constructor) +{ + I2C_eeprom EE(48); + EE.begin(); + + + assertEqual(1, 1); +} + +unittest_main() + +// --------