Skip to content

Commit 78077c2

Browse files
committed
fix: Restore basic unit tests
1 parent 140d78d commit 78077c2

9 files changed

+145
-72
lines changed

.arduino-ci.yml

+9-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
1+
# .arduino-ci.yml
2+
3+
# Compilation settings
14
compile:
25
platforms:
36
- uno
47
libraries:
58
- "OneWire"
6-
skip_unittest: true
79

8-
aux_libraries_for_ci:
9-
- "OneWire"
10+
# Unit testing settings
11+
unittest:
12+
platforms:
13+
- uno
14+
libraries:
15+
- "OneWire"

.arduino_ci/.arduino-ci.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#define ARDUINO_CI 1
2+
3+
// Mock OneWire GPIO functions
4+
uint8_t digitalPinToBitMask(uint8_t pin) { return 1 << (pin % 8); }
5+
void* digitalPinToPort(uint8_t pin) { static uint8_t dummy; return &dummy; }
6+
void* portModeRegister(void* port) { return port; }

.arduino_ci/util/crc16.h

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#ifndef CRC16_H
2+
#define CRC16_H
3+
4+
#ifdef __cplusplus
5+
extern "C" {
6+
#endif
7+
8+
// Pure C implementation to replace the ASM version
9+
static inline uint16_t _crc16_update(uint16_t crc, uint8_t data) {
10+
unsigned int i;
11+
crc ^= data;
12+
for (i = 0; i < 8; ++i) {
13+
if (crc & 1)
14+
crc = (crc >> 1) ^ 0xA001;
15+
else
16+
crc = (crc >> 1);
17+
}
18+
return crc;
19+
}
20+
21+
#ifdef __cplusplus
22+
}
23+
#endif
24+
25+
#endif

.github/workflows/arduino-ci.yml

+82
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
name: Arduino-Temperature-Control-Library Github Workflow
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
test:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- uses: actions/checkout@v3
10+
11+
- name: Install AVR dependencies
12+
run: |
13+
sudo apt-get update
14+
sudo apt-get install -y gcc-avr avr-libc
15+
16+
- name: Create required directories
17+
run: |
18+
mkdir -p $GITHUB_WORKSPACE/libraries
19+
mkdir -p $GITHUB_WORKSPACE/.arduino15
20+
mkdir -p $GITHUB_WORKSPACE/Arduino
21+
22+
- name: Setup Arduino CLI
23+
uses: arduino/setup-arduino-cli@v1
24+
25+
- name: Configure Arduino CLI and install cores
26+
run: |
27+
arduino-cli config init
28+
arduino-cli config set library.enable_unsafe_install true
29+
arduino-cli config add board_manager.additional_urls https://arduino.esp8266.com/stable/package_esp8266com_index.json
30+
arduino-cli core update-index
31+
arduino-cli core install arduino:avr
32+
arduino-cli core install esp8266:esp8266
33+
34+
- name: Install OneWire library
35+
run: |
36+
arduino-cli lib install OneWire
37+
# Replace the CRC implementation directly in the OneWire library
38+
cat > /home/runner/Arduino/libraries/OneWire/util/crc16.h << 'EOF'
39+
#ifndef CRC16_H
40+
#define CRC16_H
41+
#include <stdint.h>
42+
43+
static inline uint16_t _crc16_update(uint16_t crc, uint8_t a)
44+
{
45+
crc ^= a;
46+
for (uint8_t i = 0; i < 8; ++i) {
47+
if (crc & 1)
48+
crc = (crc >> 1) ^ 0xA001;
49+
else
50+
crc = (crc >> 1);
51+
}
52+
return crc;
53+
}
54+
55+
#endif
56+
EOF
57+
58+
- name: Set up Ruby
59+
uses: ruby/setup-ruby@v1
60+
with:
61+
ruby-version: '3.2.0'
62+
63+
- name: Install bundler
64+
run: |
65+
gem install bundler
66+
67+
- name: Install dependencies
68+
run: |
69+
bundle install
70+
71+
- name: List repository contents (for debugging)
72+
run: |
73+
ls -R
74+
75+
- name: Remove Blacklisted Example Sketches
76+
run: |
77+
echo "Removing blacklisted example sketches..."
78+
rm -f examples/ESP-WebServer/ESP-WebServer.ino
79+
80+
- name: Run tests
81+
run: |
82+
bundle exec arduino_ci.rb

.github/workflows/arduino_test_runner.yml

-39
This file was deleted.

Gemfile

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
source "https://rubygems.org"
2+
3+
gem "arduino_ci", "~> 1.6.2"

test/TestDallasTemperature.cpp

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#include <DallasTemperature.h>
2+
#include <ArduinoUnitTests.h>
3+
4+
unittest(test_initialization) {
5+
OneWire oneWire(2); // Simulate OneWire on pin 2
6+
DallasTemperature sensors(&oneWire);
7+
8+
sensors.begin();
9+
assertEqual(0, sensors.getDeviceCount());
10+
}
11+
12+
unittest(test_parasite_power_mode) {
13+
OneWire oneWire(2);
14+
DallasTemperature sensors(&oneWire);
15+
16+
sensors.begin();
17+
assertFalse(sensors.isParasitePowerMode());
18+
}
19+
20+
unittest_main()

test/TestDallasTemperature.cpp.disabled

-22
This file was deleted.

test/basic_test.cpp

-8
This file was deleted.

0 commit comments

Comments
 (0)