nodemcu-firmware/tools/luacheck_config.lua

969 lines
21 KiB
Lua
Raw Permalink Normal View History

Create NodeMCU test system based on gambiarra (#2984) * 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
2020-11-08 15:31:11 +01:00
stds = stds or ... -- set stds if this script is called by another config script
local empty = { }
local read_write = {read_only = false}
stds.nodemcu_libs = {
read_globals = {
adc = {
fields = {
INIT_ADC = empty,
INIT_VDD33 = empty,
force_init_mode = empty,
read = empty,
readvdd33 = empty
}
},
ads1115 = {
fields = {
ADDR_GND = empty,
ADDR_SCL = empty,
ADDR_SDA = empty,
ADDR_VDD = empty,
CMODE_TRAD = empty,
CMODE_WINDOW = empty,
COMP_1CONV = empty,
COMP_2CONV = empty,
COMP_4CONV = empty,
CONTINUOUS = empty,
CONV_RDY_1 = empty,
CONV_RDY_2 = empty,
CONV_RDY_4 = empty,
DIFF_0_1 = empty,
DIFF_0_3 = empty,
DIFF_1_3 = empty,
DIFF_2_3 = empty,
DR_128SPS = empty,
DR_1600SPS = empty,
DR_16SPS = empty,
DR_2400SPS = empty,
DR_250SPS = empty,
DR_32SPS = empty,
DR_3300SPS = empty,
DR_475SPS = empty,
DR_490SPS = empty,
DR_64SPS = empty,
DR_860SPS = empty,
DR_8SPS = empty,
DR_920SPS = empty,
GAIN_0_256V = empty,
GAIN_0_512V = empty,
GAIN_1_024V = empty,
GAIN_2_048V = empty,
GAIN_4_096V = empty,
GAIN_6_144V = empty,
SINGLE_0 = empty,
SINGLE_1 = empty,
SINGLE_2 = empty,
SINGLE_3 = empty,
SINGLE_SHOT = empty,
ads1015 = empty,
ads1115 = empty,
read = empty,
reset = empty,
}
},
adxl345 = {
fields = {
read = empty,
setup = empty
}
},
am2320 = {
fields = {
read = empty,
setup = empty
}
},
apa102 = {
fields = {
write = empty
}
},
bit = {
fields = {
arshift = empty,
band = empty,
bit = empty,
bnot = empty,
bor = empty,
bxor = empty,
clear = empty,
isclear = empty,
isset = empty,
lshift = empty,
rshift = empty,
set = empty
}
},
bloom = {
fields = {
create = empty
}
},
bme280 = {
fields = {
altitude = empty,
baro = empty,
dewpoint = empty,
humi = empty,
qfe2qnh = empty,
read = empty,
setup = empty,
startreadout = empty,
temp = empty
}
},
2020-05-27 23:51:19 +02:00
bme280_math = {
fields = {
altitude = empty,
dewpoint = empty,
qfe2qnh = empty,
read = empty,
setup = empty
}
},
bme680 = {
fields = {
altitude = empty,
dewpoint = empty,
qfe2qnh = empty,
read = empty,
setup = empty,
startreadout = empty
}
},
bmp085 = {
fields = {
pressure = empty,
pressure_raw = empty,
setup = empty,
temperature = empty
}
},
coap = {
fields = {
CON = empty,
Client = empty,
EXI = empty,
JSON = empty,
LINKFORMAT = empty,
NON = empty,
OCTET_STREAM = empty,
Server = empty,
TEXT_PLAIN = empty,
XML = empty
}
},
color_utils = {
fields = {
colorWheel = empty,
grb2hsv = empty,
hsv2grb = empty,
hsv2grbw = empty
}
},
cron = {
fields = {
reset = empty,
schedule = empty
}
},
crypto = {
fields = {
decrypt = empty,
encrypt = empty,
fhash = empty,
hash = empty,
hmac = empty,
mask = empty,
new_hash = empty,
new_hmac = empty,
sha1 = empty,
toBase64 = empty,
toHex = empty
}
},
dcc = {
fields = {
CV_READ = empty,
CV_RESET = empty,
CV_VALID = empty,
CV_WRITE = empty,
DCC_ACCESSORY = empty,
DCC_FUNC = empty,
DCC_IDLE = empty,
DCC_RAW = empty,
DCC_RESET = empty,
DCC_SERVICEMODE = empty,
DCC_SPEED = empty,
DCC_SPEED_RAW = empty,
DCC_TURNOUT = empty,
FLAGS_AUTO_FACTORY_DEFAULT = empty,
FLAGS_DCC_ACCESSORY_DECODER = empty,
FLAGS_MY_ADDRESS_ONLY = empty,
FLAGS_OUTPUT_ADDRESS_MODE = empty,
MAN_ID_DIY = empty,
MAN_ID_JMRI = empty,
MAN_ID_SILICON_RAILWAY = empty,
close = empty,
setup = empty
}
},
dht = {
fields = {
ERROR_CHECKSUM = empty,
ERROR_TIMEOUT = empty,
OK = empty,
read = empty,
read11 = empty,
readxx = empty
}
},
encoder = {
fields = {
fromBase64 = empty,
fromHex = empty,
toBase64 = empty,
toHex = empty
}
},
enduser_setup = {
fields = {
manual = empty,
start = empty,
stop = empty
}
},
file = {
fields = {
chdir = empty,
close = empty,
exists = empty,
flush = empty,
format = empty,
fscfg = empty,
fsinfo = empty,
getcontents = empty,
list = empty,
mount = empty,
n = empty,
on = empty,
open = empty,
putcontents = empty,
read = empty,
readline = empty,
remove = empty,
rename = empty,
seek = empty,
stat = empty,
write = empty,
writeline = empty
}
},
gdbstub = {
fields = {
brk = empty,
gdboutput = empty,
open = empty
}
},
gpio = {
fields = {
FLOAT = empty,
HIGH = empty,
INPUT = empty,
INT = empty,
LOW = empty,
OPENDRAIN = empty,
OUTPUT = empty,
PULLUP = empty,
mode = empty,
read = empty,
serout = empty,
trig = empty,
write = empty,
pulse = {
fields = {
adjust = empty,
cancel = empty,
getstate = empty,
start = empty,
stop = empty,
update = empty
}
}
}
},
hdc1080 = {
fields = {
read = empty,
setup = empty
}
},
hmc5883 = {
fields = {
read = empty,
setup = empty
}
},
http = {
fields = {
ERROR = empty,
OK = empty,
delete = empty,
get = empty,
post = empty,
put = empty,
request = empty
}
},
hx711 = {
fields = {
init = empty,
read = empty
}
},
i2c = {
fields = {
FAST = empty,
FASTPLUS = empty,
RECEIVER = empty,
SLOW = empty,
TRANSMITTER = empty,
address = empty,
read = empty,
setup = empty,
start = empty,
stop = empty,
write = empty
}
},
l3g4200d = {
fields = {
read = empty,
setup = empty
}
},
mcp4725 = {
fields = {
PWRDN_100K = empty,
PWRDN_1K = empty,
PWRDN_500K = empty,
PWRDN_NONE = empty,
read = empty,
write = empty
}
},
mdns = {
fields = {
close = empty,
register = empty
}
},
mqtt = {
fields = {
CONNACK_ACCEPTED = empty,
CONNACK_REFUSED_BAD_USER_OR_PASS = empty,
CONNACK_REFUSED_ID_REJECTED = empty,
CONNACK_REFUSED_NOT_AUTHORIZED = empty,
CONNACK_REFUSED_PROTOCOL_VER = empty,
CONNACK_REFUSED_SERVER_UNAVAILABLE = empty,
CONN_FAIL_DNS = empty,
CONN_FAIL_NOT_A_CONNACK_MSG = empty,
CONN_FAIL_SERVER_NOT_FOUND = empty,
CONN_FAIL_TIMEOUT_RECEIVING = empty,
CONN_FAIL_TIMEOUT_SENDING = empty,
Client = empty
}
},
net = {
fields = {
TCP = empty,
UDP = empty,
cert = empty,
createConnection = empty,
createServer = empty,
createUDPSocket = empty,
dns = {
fields = {
getdnsserver = empty,
resolve = empty,
setdnsserver = empty
}
},
Networking rampage and accumulated fixes (#3060) * espconn: remove unused espconn code, take 1 This is the easiest part of https://github.com/nodemcu/nodemcu-firmware/issues/3004 . It removes a bunch of functions that were never called in our tree. * espconn: De-orbit espconn_gethostbyname Further work on https://github.com/nodemcu/nodemcu-firmware/issues/3004 While here, remove `mqtt`'s charming DNS-retry logic (which is neither shared with nor duplicated in other modules) and update its :connect() return value behavior and documentation. * espconn: remove scary global pktinfo A write-only global! How about that. * net: remove deprecated methods All the TLS stuff moved over there a long time ago, and net_createUDPSocket should just do what it says on the tin. * espconn_secure: remove ESPCONN_SERVER support We can barely function as a TLS client; being a TLS server seems like a real stretch. This code was never called from Lua anyway. * espconn_secure: more code removal * espconn_secure: simplify ssl options structure There is nothing "ssl_packet" about this structure. Get rid of the terrifying "pbuffer" pointer. Squash two structure types together and eliminate an unused field. * espconn_secure: refactor mbedtls_msg_info_load Split out espconn_mbedtls_parse, which we can use as part of our effort towards addressing https://github.com/nodemcu/nodemcu-firmware/issues/3032 * espconn_secure: introduce TLS cert/key callbacks The new feature part of https://github.com/nodemcu/nodemcu-firmware/issues/3032 Subsequent work will remove the old mechanism. * tls: add deprecation warnings * luacheck: net.ifinfo is a thing now * tls: remove use of espconn->reverse * mqtt: stop using espconn->reverse Instead, just place the espconn structure itself at the top of the user data. This enlarges the structure somewhat but removes one more layer of dynamic heap usage and NULL checks. While here, simplify the code a bit. * mqtt: remove redundant pointer to connect_info Everywhere we have the mqtt_state_t we also have the lmqtt_userdata. * mqtt: doc fixes * mqtt: note bug * tls: allow :on(...,nil) to unregister a callback
2020-04-07 14:06:27 +02:00
ifinfo = empty,
multicastJoin = empty,
multicastLeave = empty
}
},
node = {
fields = {
CPU160MHZ = empty,
CPU80MHZ = empty,
bootreason = empty,
chipid = empty,
compile = empty,
dsleep = empty,
dsleepMax = empty,
dsleepsetoption = empty,
flashid = empty,
flashindex = empty,
flashreload = empty,
flashsize = empty,
getcpufreq = empty,
getpartitiontable = empty,
heap = empty,
info = empty,
input = empty,
osprint = empty,
output = empty,
random = empty,
readrcr = empty,
readvdd33 = empty,
restart = empty,
restore = empty,
setcpufreq = empty,
setpartitiontable = empty,
Create NodeMCU test system based on gambiarra (#2984) * 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
2020-11-08 15:31:11 +01:00
setonerror = empty,
sleep = empty,
stripdebug = empty,
writercr = empty,
egc = {
fields = {
setmode = empty,
meminfo = empty
}
},
task = {
fields = {
post = empty,
LOW_PRIORITY = empty,
MEDIUM_PRIORITY = empty,
HIGH_PRIORITY = empty
}
2020-06-18 21:42:13 +02:00
},
LFS = {
read_only = true,
fields = {
config = empty,
get = empty,
list = empty,
reload = empty,
time = empty
}
}
}
},
ow = {
fields = {
check_crc16 = empty,
crc16 = empty,
crc8 = empty,
depower = empty,
read = empty,
read_bytes = empty,
reset = empty,
reset_search = empty,
search = empty,
select = empty,
setup = empty,
skip = empty,
target_search = empty,
write = empty,
write_bytes = empty
}
},
pcm = {
fields = {
RATE_10K = empty,
RATE_12K = empty,
RATE_16K = empty,
RATE_1K = empty,
RATE_2K = empty,
RATE_4K = empty,
RATE_5K = empty,
RATE_8K = empty,
SD = empty,
new = empty
}
},
pipe = {
fields = {
create = empty
}
},
pixbuf = {
fields = {
FADE_IN = empty,
FADE_OUT = empty,
SHIFT_CIRCULAR = empty,
SHIFT_LOGICAL = empty,
init = empty,
newBuffer = empty,
write = empty
}
},
pwm = {
fields = {
close = empty,
getclock = empty,
getduty = empty,
setclock = empty,
setduty = empty,
setup = empty,
start = empty,
stop = empty
}
},
pwm2 = {
fields = {
get_pin_data = empty,
get_timer_data = empty,
release_pin = empty,
set_duty = empty,
setup_pin_hz = empty,
setup_pin_sec = empty,
start = empty,
stop = empty,
}
},
rc = {
fields = {
send = empty
}
},
rfswitch = {
fields = {
send = empty
}
},
rotary = {
fields = {
ALL = empty,
CLICK = empty,
DBLCLICK = empty,
LONGPRESS = empty,
PRESS = empty,
RELEASE = empty,
TURN = empty,
close = empty,
getpos = empty,
on = empty,
setup = empty
}
},
rtcfifo = {
fields = {
count = empty,
drop = empty,
dsleep_until_sample = empty,
peek = empty,
pop = empty,
prepare = empty,
put = empty,
ready = empty
}
},
rtcmem = {
fields = {
read32 = empty,
write32 = empty
}
},
rtctime = {
fields = {
adjust_delta = empty,
dsleep = empty,
dsleep_aligned = empty,
epoch2cal = empty,
get = empty,
set = empty
}
},
si7021 = {
fields = {
HEATER_DISABLE = empty,
HEATER_ENABLE = empty,
RH08_TEMP12 = empty,
RH10_TEMP13 = empty,
RH11_TEMP11 = empty,
RH12_TEMP14 = empty,
firmware = empty,
read = empty,
serial = empty,
setting = empty,
setup = empty
}
},
sigma_delta = {
fields = {
close = empty,
setprescale = empty,
setpwmduty = empty,
settarget = empty,
setup = empty
}
},
sjson = {
fields = {
decode = empty,
decoder = empty,
encode = empty,
encoder = empty
}
},
sntp = {
fields = {
getoffset = empty,
setoffset = empty,
sync = empty
}
},
somfy = {
fields = {
DOWN = empty,
PROG = empty,
STOP = empty,
UP = empty,
2020-12-28 00:04:32 +01:00
sendcommand = empty,
listen = empty
}
},
spi = {
fields = {
CPHA_HIGH = empty,
CPHA_LOW = empty,
CPOL_HIGH = empty,
CPOL_LOW = empty,
DATABITS_8 = empty,
FULLDUPLEX = empty,
HALFDUPLEX = empty,
MASTER = empty,
SLAVE = empty,
get_miso = empty,
recv = empty,
send = empty,
set_clock_div = empty,
set_mosi = empty,
setup = empty,
transaction = empty
}
},
struct = {
fields = {
pack = empty,
size = empty,
unpack = empty
}
},
switec = {
fields = {
close = empty,
dequeue = empty,
getpos = empty,
moveto = empty,
reset = empty,
setup = empty
}
},
tcs34725 = {
fields = {
disable = empty,
enable = empty,
raw = empty,
setGain = empty,
setIntegrationTime = empty,
setup = empty
}
},
tls = {
fields = {
createConnection = empty,
setDebug = empty,
cert = {
fields = {
auth = empty,
verify = empty
}
}
}
},
tm1829 = {
fields = {
write = empty
}
},
tmr = {
fields = {
ALARM_AUTO = empty,
ALARM_SEMI = empty,
ALARM_SINGLE = empty,
create = empty,
delay = empty,
now = empty,
resume_all = empty,
softwd = empty,
suspend_all = empty,
time = empty,
wdclr = empty
}
},
tsl2561 = {
fields = {
ADDRESS_FLOAT = empty,
ADDRESS_GND = empty,
ADDRESS_VDD = empty,
GAIN_16X = empty,
GAIN_1X = empty,
INTEGRATIONTIME_101MS = empty,
INTEGRATIONTIME_13MS = empty,
INTEGRATIONTIME_402MS = empty,
PACKAGE_CS = empty,
PACKAGE_T_FN_CL = empty,
TSL2561_ERROR_I2CBUSY = empty,
TSL2561_ERROR_I2CINIT = empty,
TSL2561_ERROR_LAST = empty,
TSL2561_ERROR_NOINIT = empty,
TSL2561_OK = empty,
getlux = empty,
getrawchannels = empty,
init = empty,
settiming = empty
}
},
-- There would be too many fields for all the fonts and displays
u8g2 = {other_fields = true},
uart = {
fields = {
PARITY_EVEN = empty,
PARITY_NONE = empty,
PARITY_ODD = empty,
STOPBITS_1 = empty,
STOPBITS_1_5 = empty,
STOPBITS_2 = empty,
alt = empty,
getconfig = empty,
on = empty,
setup = empty,
write = empty
}
},
-- There would be too many fields for all the fonts and displays
ucg = {other_fields = true},
websocket = {
fields = {
createClient = empty
}
},
wiegand = {
fields = {
create = empty
}
},
wifi = {
fields = {
COUNTRY_AUTO = empty,
COUNTRY_MANUAL = empty,
LIGHT_SLEEP = empty,
MODEM_SLEEP = empty,
NONE_SLEEP = empty,
NULLMODE = empty,
OPEN = empty,
PHYMODE_B = empty,
PHYMODE_G = empty,
PHYMODE_N = empty,
SOFTAP = empty,
STATION = empty,
STATIONAP = empty,
STA_APNOTFOUND = empty,
STA_CONNECTING = empty,
STA_FAIL = empty,
STA_GOTIP = empty,
STA_IDLE = empty,
STA_WRONGPWD = empty,
WEP = empty,
WPA2_PSK = empty,
WPA_PSK = empty,
WPA_WPA2_PSK = empty,
getchannel = empty,
getcountry = empty,
getdefaultmode = empty,
getmode = empty,
getphymode = empty,
nullmodesleep = empty,
resume = empty,
setcountry = empty,
setmaxtxpower = empty,
setmode = empty,
setphymode = empty,
sleeptype = empty,
startsmart = empty,
stopsmart = empty,
suspend = empty,
sta = {
fields = {
autoconnect = empty,
changeap = empty,
clearconfig = empty,
config = empty,
connect = empty,
disconnect = empty,
getap = empty,
getapindex = empty,
getapinfo = empty,
getbroadcast = empty,
getconfig = empty,
getdefaultconfig = empty,
gethostname = empty,
getip = empty,
getmac = empty,
getrssi = empty,
setaplimit = empty,
sethostname = empty,
setip = empty,
setmac = empty,
sleeptype = empty,
status = empty
}
},
ap = {
fields = {
config = empty,
deauth = empty,
getbroadcast = empty,
getclient = empty,
getconfig = empty,
getdefaultconfig = empty,
getip = empty,
getmac = empty,
setip = empty,
setmac = empty,
dhcp = {
fields = {
config = empty,
start = empty,
stop = empty
}
},
}
},
eventmon = {
fields = {
AP_PROBEREQRECVED = empty,
AP_STACONNECTED = empty,
AP_STADISCONNECTED = empty,
EVENT_MAX = empty,
STA_AUTHMODE_CHANGE = empty,
STA_CONNECTED = empty,
STA_DHCP_TIMEOUT = empty,
STA_DISCONNECTED = empty,
STA_GOT_IP = empty,
WIFI_MODE_CHANGED = empty,
register = empty,
unregister = empty,
reason = {
fields = {
["4WAY_HANDSHAKE_TIMEOUT"] = empty,
["802_1X_AUTH_FAILED"] = empty,
AKMP_INVALID = empty,
ASSOC_EXPIRE = empty,
ASSOC_FAIL = empty,
ASSOC_LEAVE = empty,
ASSOC_NOT_AUTHED = empty,
ASSOC_TOOMANY = empty,
AUTH_EXPIRE = empty,
AUTH_FAIL = empty,
AUTH_LEAVE = empty,
BEACON_TIMEOUT = empty,
CIPHER_SUITE_REJECTED = empty,
DISASSOC_PWRCAP_BAD = empty,
DISASSOC_SUPCHAN_BAD = empty,
GROUP_CIPHER_INVALID = empty,
GROUP_KEY_UPDATE_TIMEOUT = empty,
HANDSHAKE_TIMEOUT = empty,
IE_INVALID = empty,
IE_IN_4WAY_DIFFERS = empty,
INVALID_RSN_IE_CAP = empty,
MIC_FAILURE = empty,
NOT_ASSOCED = empty,
NOT_AUTHED = empty,
NO_AP_FOUND = empty,
PAIRWISE_CIPHER_INVALID = empty,
UNSPECIFIED = empty,
UNSUPP_RSN_IE_VERSION = empty
}
}
}
},
monitor = {
fields = {
channel = empty,
start = empty,
stop = empty
}
}
}
},
wps = {
fields = {
FAILED = empty,
SCAN_ERR = empty,
SUCCESS = empty,
TIMEOUT = empty,
WEP = empty,
disable = empty,
enable = empty,
start = empty
}
},
ws2801 = {
fields = {
init = empty,
write = empty
}
},
ws2812 = {
fields = {
FADE_IN = empty,
FADE_OUT = empty,
MODE_DUAL = empty,
MODE_SINGLE = empty,
SHIFT_CIRCULAR = empty,
SHIFT_LOGICAL = empty,
init = empty,
newBuffer = empty,
write = empty
}
},
ws2812_effects = {
fields = {
get_delay = empty,
get_speed = empty,
init = empty,
set_brightness = empty,
set_color = empty,
set_delay = empty,
set_mode = empty,
set_speed = empty,
start = empty,
stop = empty
}
},
xpt2046 = {
fields = {
getPosition = empty,
getPositionAvg = empty,
getRaw = empty,
init = empty,
isTouched = empty,
setCalibration = empty
}
},
pack = empty,
unpack = empty,
Create NodeMCU test system based on gambiarra (#2984) * 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
2020-11-08 15:31:11 +01:00
package = {fields = {seeall = read_write}}
}
}
Create NodeMCU test system based on gambiarra (#2984) * 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
2020-11-08 15:31:11 +01:00
std = "lua51+lua53+nodemcu_libs"