Josh Cooper
fe29bff845
Adds cxxrandom unit test and fixes interface problems ( #2099 )
...
* Adds cxxrandom unit test and fixes interface problems
* Tightens braces
* Adds detection code for Shuffle's seqID/engID
* Adds usage examples for cxxrandom
* Gives cxxrandom objects id ranges, sort of
* Updates changelog
* Updates changelog.txt
* Increases id space for cxxrandom
* Fixes bool distribution error message and improves check
* Adds comment explaining the seeded RNG tests for cxxrandom
* Fixes type problem for 32bit builds
* Reduces loop count a few magnitudes
* Fixes a mistake in test.cxxrandom_seed
2022-04-30 21:46:47 -07:00
myk002
af47434f52
protect against 0 width in string:wrap()
2022-04-29 11:29:19 -07:00
lethosor
d1f0edd33b
Apply initial pre-commit config
2022-04-12 14:48:19 -04:00
Myk
4f9608da13
Document and update argparse module ( #2089 )
...
also add unit tests and use new string fns in processArgs and allow it to recognize parameters with two dashes instead of just one
2022-04-11 16:16:55 -07:00
Myk
96b5b4420b
Add string:escape_pattern() utility function ( #2082 )
...
* add string:escape_pattern() to dfhack.lua
stolen from devel/query.lua. will migrate scripts to use the common implementation later
2022-04-10 21:18:01 -07:00
myk002
54e8761aa0
capture fortifications and engravings in blueprint
2022-04-01 12:20:37 -07:00
lethosor
1f49d4a7cf
test: quickfort/ecosystem: avoid assuming output folder exists
2022-03-31 21:57:20 -07:00
myk002
dbe87d4156
implement orders list
2022-02-25 12:58:56 -08:00
myk002
5ab541c17e
support start() markers in test blueprints
2022-02-18 14:54:45 -08:00
myk002
925132af4e
use "golden" files for regression testing
...
where they differ from the raw input files. this is required for meta
blueprints since the output blueprints that the `blueprint` plugin
generates only knows map state, not the meta hierarchy that produced it.
2022-02-12 18:28:47 -08:00
myk002
490afa28c5
ecosystem test harness: decouple phases from modes
2021-10-04 12:53:31 -07:00
myk002
27c0c41536
only create empty blueprints on explicit request
...
and use the new functionality in the ecosystem tests, which simplifies
the blueprint commandline creation
2021-10-02 23:36:26 -07:00
myk002
8a08a0a0c1
produce minimal blueprints for the ecosystem test
2021-10-02 09:25:19 -07:00
myk002
ecdfca89d1
support nil to indicate no short param name
2021-09-25 22:00:49 -07:00
myk002
fc556c9e5d
implement non-alias long form params
...
now long form parameters can exist by themselves without being an alias
for a required equivalent short form param
2021-09-25 22:00:49 -07:00
myk002
c23970f36b
add unit tests
2021-09-20 16:10:15 -07:00
myk002
8c8365abec
only run dig-now over the test area
2021-09-17 10:57:26 -07:00
myk002
44a93fcb28
update unit tests
2021-09-17 10:57:26 -07:00
myk002
772e386427
implement --format option for minimal and pretty
...
pretty is currently equivalent to the previous format, though there will
be changes in the future
2021-09-17 10:57:26 -07:00
myk002
0747f872b0
add --splitby param to blueprint
...
--splitby=none is the new default, allowing all blueprint phases to be
written to a single file. old behavior of one phase per file is
supported via --splitby=phase.
2021-09-09 09:58:53 -07:00
lethosor
d5be63823d
Merge remote-tracking branch 'TymurGubayev/patch-1' into develop
2021-08-31 00:55:36 -04:00
myk002
39a8f2c799
migrate existing tests to use expect.str_find()
2021-08-25 06:38:22 -07:00
myk002
9168f9359d
name test method the same as the method under test
2021-08-24 21:29:32 -07:00
myk002
691e54dfc6
rename expect.find to expect.str_find
2021-08-24 21:06:12 -07:00
myk002
b2f44f00f1
add pattern matching expect.find() for unit tests
...
settled on `find()` since the string method of the same name has the
same semantics. other options: `str_find()` since it fails on non-string
or `match()` (but that might imply that the pattern needs to match the
entire string).
2021-08-23 22:59:30 -07:00
lethosor
3a27a5d6a0
Allow dialog tests to run outside of fortress mode
2021-08-22 17:45:45 -04:00
myk002
86b2329b7f
fix hardcoded call to pairs, add test
2021-08-20 22:55:07 -07:00
myk002
119595dcaf
use df.item._identity to test noniterable userdata
2021-08-19 21:57:16 -07:00
myk002
0f0ae156c3
test printall_recurse
2021-08-19 21:57:16 -07:00
myk002
c5bb139282
unit test with userdata
2021-08-19 21:57:16 -07:00
myk002
d9c6c2dde3
add safe_pairs, update unit tests
2021-08-19 21:57:16 -07:00
myk002
3f2795e80a
unit tests first draft
2021-08-19 21:56:44 -07:00
myk002
f47bab9806
pass comment param to expect calls
2021-08-14 16:43:40 -07:00
myk002
9a7a692ea8
ensure restored orders start at index 0
...
so the manager_order_next_id state can be set to #orders
2021-08-14 16:35:41 -07:00
myk002
9ec1488f1b
add unit tests
2021-08-14 16:35:40 -07:00
myk002
98b707d444
ensure active orders are restored after tests
2021-08-14 16:35:40 -07:00
Timur Kelman
4c2473de92
add test.ListBox_with_multi_select_and_visual_indicator
...
this test also demonstrates actual (minimal) example usage
2021-07-31 11:46:59 +02:00
Timur Kelman
4bf8b6daab
fix tabs and whitespaces
2021-07-30 23:23:58 +02:00
Timur Kelman
70d088c763
add tests for dialog.lua
2021-07-30 23:21:35 +02:00
myk002
a34e1e986d
quickfort orders is now safe to include directly
2021-07-09 22:02:15 -07:00
myk002
8fe173299c
update header comment
2021-07-09 22:02:15 -07:00
myk002
551a5cba4b
optimize test area search
2021-07-09 22:02:15 -07:00
myk002
232c85d258
use lua to blueprint to avoid console spam
2021-07-09 22:02:15 -07:00
myk002
0e270a3505
be sure to reset border tiles between tests
2021-07-09 22:02:15 -07:00
myk002
c2b92ce6a0
use new dig-now and tiletypes-here APIs
2021-07-09 22:02:15 -07:00
myk002
21a4f64cdd
ensure test loads when game is not in fort mode
...
even if the test is not being run
2021-07-09 22:02:14 -07:00
myk002
73413038df
add quickfort ecosystem functional test harness
...
and a few initial tests
2021-07-09 22:02:14 -07:00
lethosor
1014c41db6
Add context to some loops in tests
2021-07-05 20:49:25 -04:00
lethosor
898d4621da
Merge remote-tracking branch 'myk002/myk_view_unit' into develop
2021-07-05 20:42:49 -04:00
myk002
f1bcf0c7b5
make dwarfmode test not require autocorrection
2021-07-05 16:05:12 -07:00
myk002
4eb8870797
add unit tests
2021-07-05 16:02:19 -07:00
myk002
5e0672902c
fix parse_gui_commandline test when run on title
2021-07-05 16:01:23 -07:00
myk002
0ef5134a33
add optional coordinate validation to coords
2021-07-04 07:32:29 -07:00
myk002
56a1c8b4d5
coordinates can be 0
2021-07-03 16:26:39 -07:00
myk002
aefb893daa
remove redundant tests
2021-07-02 23:29:02 -07:00
myk002
9535ff82bb
add argparse library functions
2021-07-02 23:11:17 -07:00
lethosor
f9627a0cfb
Add another split() test for pattern delimiters
2021-07-03 00:33:28 -04:00
lethosor
da3b522061
Enable string.split() tests
...
Ref #1888 (step 4)
2021-07-03 00:31:19 -04:00
myk002
36b2d05ff6
add dfhack string functions and tests
...
added string:split
added string:trim
added a default value for wrap width
added function comments
added tests for all string functions (the tests for string:split will be commented out until we remove the competing implementation in gui/load-screen
2021-07-02 13:21:54 -07:00
lethosor
3a7306eb03
Restrict orders tests to fortress mode
2021-06-30 23:18:53 -04:00
lethosor
75bf013c7f
Add more "orders import" tests
...
The invalid-after-valid test fails
2021-06-30 23:15:56 -04:00
lethosor
5686272c91
Add tests for "orders import"
...
A couple crashes have resulted from invalid orders JSON files - this should
help catch any regressions with error handling.
See #1770 , #1893 , #1894
2021-06-30 23:01:51 -04:00
myk002
eafa6e86f7
add utils.normalizePath()
2021-06-29 12:22:05 -07:00
lethosor
e070f4d9d8
Merge remote-tracking branch 'myk002/myk_sidebar' into develop
2021-06-28 01:03:13 -04:00
lethosor
4945018e92
Merge remote-tracking branch 'myk002/myk_multi_mock' into develop
2021-06-25 01:27:46 -04:00
lethosor
0297a5b1b8
Check some more cases, especially empty strings
2021-06-24 00:42:50 -04:00
myk002
5b12c64cba
add new string function: wrap()
...
refactored and improved from the implementation in quickfort's dialog.lua
2021-06-23 13:59:39 -07:00
myk002
000b589e3a
add dwarfmode library function: enterSidebarMode()
...
refactored from quickfort. this common implementation will replace the
now redundant functions in quickfort, gui/mass-remove, and gui/blueprint
2021-06-23 12:29:37 -07:00
myk002
b7a970a309
allow mock.func() to return multiple values
2021-06-15 13:16:05 -07:00
myk002
1b1b4245c9
report output filenames when creating blueprints
...
also refactor so we can get this data from gui/blueprint
2021-05-31 15:34:19 -07:00
myk002
1aaed3a6ed
error on invalid phase names
2021-05-21 06:34:28 -07:00
myk002
95d97b929e
remove unit tests for removed function
2021-05-15 05:59:37 -07:00
myk002
816cd5cf27
add unit tests
2021-05-10 21:11:13 -07:00
Myk
654b3e9c56
Merge branch 'develop' into myk_negative_number_params
2021-05-09 21:46:07 -07:00
lethosor
4968d97c22
test/structures/find: avoid overwriting other potential config values
2021-05-08 22:12:07 -04:00
myk002
59b08e99f6
fix -- handling and required arg detection
2021-05-07 15:21:45 -07:00
myk002
fd735d4b42
treat negative numbers as non-options in getopt
2021-05-07 15:21:45 -07:00
lethosor
403f822520
Add tests for patch() where patching raises an error
2021-04-17 00:59:56 -04:00
lethosor
ee8e10429d
Add initial implementation of mock.restore()
...
Like mock.patch() but only restores original values instead of also setting
new values initially.
2021-04-16 00:34:46 -04:00
lethosor
757736728d
Add a mock.func() helper for mocking functions
2021-04-10 01:22:03 -04:00
lethosor
5424392273
mock.patch(): propagate return values
2021-04-09 00:41:39 -04:00
lethosor
f25b8a0d14
Fix patching value with nil
2021-04-09 00:35:54 -04:00
lethosor
7b2f01d45b
Add initial mock.patch() implementation for tests
2021-04-09 00:32:10 -04:00
myk002
642d8cbe4b
handle nil values sent to printerr
2021-04-05 01:37:43 -07:00
myk002
13ca7f8c9e
move expect.lua from internal/ to test_util/
2021-04-04 17:37:37 -07:00
myk002
5af1b627cb
add tests, move expect.lua
...
I moved expect.lua from library/lua/test/ to library/lua/internal since
luacov is configured to ignore any file with /test/ in its path
2021-04-04 17:37:36 -07:00
myk002
757dbeb238
update existing calls to expect.error* to new API
2021-04-04 17:37:36 -07:00
Ben Lubar
c06d1f8e52
tagged union support for lua ( #1818 )
2021-03-30 15:55:06 -05:00
lethosor
62776f5568
Move `expect` functions to a separate file
...
This allows tests to test these functions without needing to include the test
wrapper directly (now ci/test.lua, formerly test/main.lua). Hopefully this
location is also more stable, similar to other libraries that are already tested.
2021-03-24 00:48:52 -04:00
lethosor
29a396ba54
Merge branch 'develop' into myk_move_main
2021-03-23 22:17:36 -04:00
lethosor
9a29e5f1ce
Make "test file failed to load" errors more obvious, and make run-tests.py fail
...
These errors could previously go undetected, since they were easy to miss at the
end of the output and did not cause run-tests.py to fail.
This change adds a `*` pseudo-entry to test_status.json, which is set to
"failed" if any tests failed *or* failed to load. This avoids the need to change
run-tests.py, which is cached on Buildmaster.
See #1815
2021-03-23 22:11:48 -04:00
lethosor
e9efa6c961
Update xml, fix + improve robustness of unions.lua unit tests
...
- unit_action_fields(): handled primitive union members correctly
- unit_action_type(): added messages to make failures easier to diagnose
- Also removed redundant checks that effectively checked that
`enum.attrs[k] == enum.attrs[v]` - this is out of scope of union tests
2021-03-23 21:24:57 -04:00
myk002
5f00183177
move test harness out of test dir
...
and install to test.lua in top-level scripts directory instead of test/main.lua
2021-03-22 10:15:32 -07:00
myk002
3e5a2c8d7c
rerun all tests by default
...
introduce and use --resume option for ci
2021-03-22 10:06:03 -07:00
lethosor
120a359d6f
Fix typo
2021-03-20 13:29:30 -04:00
myk002
403ba2b8ea
work when there is no done_command
2021-03-07 12:06:48 -08:00
myk002
98b67e170d
allow done_command to be set in test_config.json
2021-03-07 08:51:02 -08:00
myk002
dc5fe71caf
add more help and improve compatibility
...
- explain modes, done command, and test_config.json file format
- also be more flexible with how the done command is formatted (can now be
passed as either separate tokens or as a single quoted string)
- print the filter values when filtering tests
2021-03-07 08:24:18 -08:00
myk002
3ff3457c10
include main test file as a module for testing
...
rewrite main.lua so it can be included as a module
rename test.lua to test_test.lua since I plan to rename main.lua to
test.lua in a future PR
2021-03-07 08:24:18 -08:00
myk002
4779dd678d
fix test_dir param and allow userdata in table_eq
2021-03-07 08:24:18 -08:00