While we intend our release strategy to be that we just fast-forward our
`release` branch to `dev`, things have come a little off the wheels.
This is a "git merge -s recursive -X theirs" of `dev` into `release`
instead.
- Changed the note about bme280_math dependency into a blue note box, like in the [bh1750 documentation](https://nodemcu.readthedocs.io/en/release/lua-modules/bh1750/)
- Added a paragraph on differentiating between BMP280 and BME280 sensors. It put it in an orange caution box for now, might be too visible for a rare problem.
- Small fixes in bme280.setup() description
* Rename to tests/README.md
* Expand tests/README.md a bit
* NTest: remove report() in favor of named fields
Use a metatable to provide defaults which can be shadowed by the calling
code.
* NTest: remove old interface flag
I think we have few enough tests that we can verify not needing this
alert for ourselves.
* NTest tests: new standard prelude
Allow for NTest constructor to be passed in to the test itself.
The test harness can use this to provide a wrapper that will
pre-configure NTest itself.
* NTest output handler for TAP messages
* expect tests: core library functions
* expect tests: file xfer TCL module
* expect tests: add TAP-based test runner
* Begin documenting TCL goo
* Add .gitattributes to make sure lineends are correct ...
... if checked out under windows and executed under linux (say docker)
* tests/README: enumerate dependencies
* tests: more README.md
Co-authored-by: Gregor Hartmann <HHHartmann@users.noreply.github.com>
* LiquidCrystal I2C 4-bit robustness
- Fix up some formatting
- Initialization is now more conformant with the datasheet.
- Read-backs don't needlessly (or erroneously!) store back
While here, document some unexpected behaviour of read-back commands.
* liquidcrystal i2c 4bit NTest
* apa102: remove dead code
We can't store strings of hundreds of thousands of characters in RAM, so
this can't possibly have fired, historically. Pixbufs are still RAM
objects, so that's still out. With LFS, it would take a pathological
example to hit the required 400KB TSTRING.
* Add IRQ management functions
* ws2812: fill UART FIFOs with IRQs off
Refactor code to make the use of two fill loops less gross.
`ws2812` buffer extracted to new `pixbuf` module.
* The new pixbuf module has more functionality than the `ws2812`-specific buffer it replaces.
* This is work in progress towards https://github.com/nodemcu/nodemcu-firmware/issues/2916
* The LED driver modules `ws2812`, `ws2801`, `apa102`, and `tm1829` have sprouted `pixbuf` support.
* `NTest` tests for `pixbuf` now exist.
While here, document the ws2812 UART-based overlapping with mainline
execution. Fixes https://github.com/nodemcu/nodemcu-firmware/issues/3140
Co-authored-by: Gregor Hartmann <HHHartmann@users.noreply.github.com>
* mqtt: remove concept of connection timeout
Just rely on the network stack to tell us when things have gone south.
* mqtt: remove write-only mqtt_state.port field
* mqtt: drop useless conditional
* mqtt: decouple message sent flag from timer
* mqtt: reconnect callback does not need to hang up
The network stack has certainly done that for us at this point.
Similarly, since we're about to call mqtt_socket_disconnected, don't
bother unregistering the timer here, either.
* mqtt: don't tick once per second
Set the timer for the duration of the wait and cancel it on the other side.
* mqtt: defer message queue destruction to _disconnect
We're going to want to publish a disconnect message for real, so doing
this in _close does no one any favors
* mqtt: miscellaneous cleanups
No functional change intended
* mqtt: close() should send disconnect message for real
This means waiting for _sent() to fire again before telling the network
stack to disconnect.
* mqtt: tidy connect and dns
- Push the self-ref to after all allocations and error returns
- Don't try to extract IPv4 from the domain string ourselves, let the
resolver, since it can
- Don't try to connect to localhost. That can't possibly work.
* mqtt: common up some callback invocations
* mqtt: don't retransmit messages on timeout
There's no point in retransmitting messages on timeout; the network
stack will be trying to do it for us anyway.
* mqtt: remove unnecessary NULL udata checks
* mqtt: hold strings in Lua, not C
Eliminates a host of C-side allocations.
While here, move the rest of the mqtt_connect_info structure out to its
own thing, and pack some flags using a bitfield.
* mqtt: mqtt_socket_on use lua_checkoption
* mqtt: slightly augment debug messages
These changes have made some debugging ever so slightly easier.
These have been handy within the test harness for streaming files and
LFS images across to the DUTs.
Add nrec method to pipe
Co-authored-by: Gregor Hartmann <HHHartmann@users.noreply.github.com>
* Create mispec_file.lua
* Initial commit of gambiarra
* Adapt gambiarra to NodeMCU
* adapt to NodeMCU spacing and add nok functionality
* Some refactoring to make it easier to add new functionality
* Add methode `fail` to check failing code and pass error messages to output
- fail can be called with a function that should fail and a string which should be contained in the errormessage.
- Pass failed check reasons to output.
* Create gambiarra_file.lua
* Add reporting of tests that failed with Lua error
* ok, nok and fail will terminate the running test
* Add capability to run sync and async tests in mixed order and have a task.post inbetween them
* fix gambiarra self test to also run on device (not only host)
Use less ram in checking tests directly after they ran.
Use nateie task.post to tame watchdog.
* Update file tests + add async tmr tests
* Another fix in executing async test
* Catch errors in callbacks using node.setonerror
* change interface to return an object with several test methods
* Update README.md
* Change interface of Gambiarra + add reason for failed eq
* Update gambiarra documentation
* Add coroutine testcases to gambiarra
* Delete mispec_file.lua as it is superseeded by gambiarra_file.lua
* improve regexp for stack frame extraction
* Use Lua 53 debug capabilities
* move actual tests upfront
* remove debug code + optimization
* Show errors immediately instead of at the end of the test, freeing memory earlier
* Split tests to be run in 2 tranches
* rename to NTest and move to new location
* Add tests to checking mechanisms
* Add luacheck to tests
* Some pushing around of files
* more (last) fixes and file juggling
* Minor tweaks and forgotten checkin
* Add NTest selftest to travis
* Trying how to master travis
* another try
* restrict NTest selftest to linux
unread contained two subtle bugs:
- it created a buffer chunk at pipe[1], when that position is reserved
for the pipe reader function. Because it shifted pipe[i] to
pipe[i+1], including pipe[1], this was likely to manifest as the pipe
later attempting to dequeue a function rather than a buffer chunk
user datum. Solve this by adjusting the loop bounds and creation
index.
- when it created a new buffer chunk, it left that chunk's ->start and
->end fields at 0, but would then exit the loop to do the tail fill,
which was in turn assuming the exit condition of the loop when an
existing chunk had room, namely that data had been moved to the right
and so ->start > l. Solve this by making new chunks empty but with
->start = ->end = LUAL_BUFFERSIZE. It may be slightly better to
instead try to leave room at both ends if the buffer was empty prior
to this unread.
FIXES: https://github.com/nodemcu/nodemcu-firmware/issues/3155