taskwarrior/test
2015-08-09 16:34:04 -04:00
..
basetest Test: Drop default confirmation:off and correct tests accordingly 2015-07-28 19:57:18 +01:00
json
simpletap TAP: Don't fail on errors during setUpClass 2015-07-23 17:42:41 +01:00
test_certs Certs 2015-01-19 18:25:21 -05:00
test_hooks Tests: expose 'args' passed to hook scripts 2015-04-06 13:43:41 +01:00
.gitignore Test: Added col.t to test Column::measure 2015-07-18 14:11:14 -04:00
abbreviation.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
add.t Test: Added test for TW-1642 2015-07-28 19:35:29 -04:00
alias.t Test: Switched from 'out' to 'err' for a footnote message 2015-08-07 23:54:43 -04:00
annotate.t Test: Added annotation tests 2015-07-18 15:15:36 -04:00
append.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
args.1.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
args.t Test: Corrected separator test 2015-07-04 16:25:03 -04:00
autocomplete.t.cpp C++11: N2672 Initializer lists 2015-05-24 13:03:02 -04:00
bash_completion.t Test: Drop default confirmation:off and correct tests accordingly 2015-07-28 19:57:18 +01:00
bash_tap.sh Tests: Update bash_tap.sh 2015-07-30 17:39:16 +02:00
bash_tap_tw.sh Tests: Include bash_tap.sh for quick Bash tests 2015-07-20 13:54:26 +02:00
bug.360.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
bug.425.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
bug.441.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
bug.628.t Test: Converted to Python 2015-07-11 14:32:25 -04:00
bug.649.t Test: Converted to Python 2015-07-22 23:00:30 -04:00
bug.656.t Test: Converted to Python 2015-07-22 22:38:50 -04:00
bug.674.t Test: Converted to Python 2015-07-22 22:45:17 -04:00
bug.697.t Test: Converted to Python, enabled 2015-07-24 17:12:37 -04:00
bug.818.t Test: Converted to Python 2015-07-22 23:12:33 -04:00
bug.835.t Test: Concerted to Python 2015-07-22 23:19:13 -04:00
bug.837.t Test: Cleanup 2015-07-23 17:34:42 -04:00
bug.839.t Test: Converted to Python 2015-07-22 23:31:47 -04:00
bug.851.t Test: Converted to Python 2015-07-11 17:51:30 -04:00
bug.879.t Test: Converted to Python 2015-07-22 23:40:40 -04:00
bug.886.t Test: Converted to Python 2015-07-12 16:36:34 -04:00
bug.899.t Test: Converted to Python 2015-07-22 23:51:18 -04:00
bug.954.t Test: Drop default confirmation:off and correct tests accordingly 2015-07-28 19:57:18 +01:00
bug.956.t Test: Converted to Python 2015-07-23 16:49:41 -04:00
bug.986.t Test: Converted to Python 2015-07-11 15:48:27 -04:00
bug.1006.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
bug.1031.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
bug.1036.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
bug.1063.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
bug.1254.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
bug.1267.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
bug.annotate.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
bug.annual.t Test: Cleanup 2015-07-23 17:34:42 -04:00
bug.before.t Test: Removed custom assert messages 2015-07-03 15:47:30 -04:00
bug.bulk.t Test: Converted to Python 2015-07-23 08:20:14 -04:00
bug.c001.t Test: Converted to Python 2015-07-22 21:21:46 -04:00
bug.hasnt.t Test: Converted to Python 2015-07-23 07:35:58 -04:00
bug.period.t Test: Converted to Python 2015-07-23 07:47:56 -04:00
bug.range.t Test: Converted to Python 2015-07-03 15:16:30 -04:00
bug.summary.t Test: Drop default confirmation:off and correct tests accordingly 2015-07-28 19:57:18 +01:00
bulk.t Test: Reorganize and cleanup bulk.t tests 2015-07-28 20:30:00 +01:00
burndown.t Test: Drop default confirmation:off and correct tests accordingly 2015-07-28 19:57:18 +01:00
calc.t Test: Simplify path construction of calc binary 2015-07-27 21:33:14 +01:00
calendar.t Test: Converted to Python 2015-07-23 19:09:45 -04:00
caseless.t Test: Converted to Python 2015-07-05 13:02:37 -04:00
cli.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
CMakeLists.txt TW-1543: cmake complains "test" is not a valid target (on arch linux) 2015-07-19 17:29:23 -04:00
col.t.cpp Test: Added col.t to test Column::measure 2015-07-18 14:11:14 -04:00
color.cmd.t Test: Wrong color name 2015-08-02 16:22:13 -04:00
color.rules.t Test: Simplified test calls 2015-07-11 10:52:45 -04:00
color.t.cpp Unit Tests 2015-03-07 12:14:39 -05:00
columns.t Test: Removed sensitivity on floating point formatting 2015-08-02 16:35:22 -04:00
completed.t Test: Drop default confirmation:off and correct tests accordingly 2015-07-28 19:57:18 +01:00
completion.t zcmdcat: zsh completion: group commands by category 2015-07-26 14:01:59 -04:00
config.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
configuration.t Test: Added _config tests 2015-07-18 15:48:35 -04:00
confirmation.t Test: Converted to Python 2015-07-23 20:49:05 -04:00
context.t Test: Drop default confirmation:off and correct tests accordingly 2015-07-28 19:57:18 +01:00
conversion Test: Remove Perl from conversion script 2015-07-27 23:48:37 +01:00
count.t Test: Drop default confirmation:off and correct tests accordingly 2015-07-28 19:57:18 +01:00
countdown.t Test: Converted to Python 2015-07-22 22:11:53 -04:00
custom.config.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
custom.recur_ind.t Test: Converted to Python 2015-07-23 22:51:52 -04:00
custom.t Test: Combined label.t, custom.t 2015-07-04 23:23:26 -04:00
custom.tag_ind.t Test: Converted to Python 2015-07-03 16:07:45 -04:00
date.iso.t Test: Removed TZ sensitivity from test 2015-07-12 18:23:57 -04:00
date.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
dateformat.t Test: Converted to Python 2015-07-23 19:09:45 -04:00
dates.t.cpp Test: Added abbreviated date tests 2015-07-19 19:09:31 -04:00
datesort.t Test: Converted to Python 2015-07-23 11:24:49 -04:00
datetime-negative.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
debug.t Test: Added debug hooks mode tests 2015-07-17 22:09:51 -04:00
default.command.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
default.t Test: Converted to Python 2015-07-03 15:46:58 -04:00
delete.t Test: Corrected util.cpp/confirm calls to check std::cin::eof 2015-07-29 22:37:59 -04:00
denotate.t Test: Converted to Python 2015-07-24 08:57:34 -04:00
dependencies.t Test: Modificed dependency test to not use abbreviated DOM refs 2015-08-07 19:34:23 -04:00
diag.t Test: Enabled hooks before running diag, to get more info 2015-07-19 20:34:15 -04:00
diag_color.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
dom.t DOM: Clarified _get behavior 2015-08-03 09:05:17 -04:00
due.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
duplicate.t Test: Added dulicate verbosity test 2015-07-19 20:52:14 -04:00
duration.t.cpp Test: Added Duration::formatSeconds test 2015-07-17 22:10:14 -04:00
edit.t Test: Propagated typo fix to tests 2015-07-25 14:07:14 -04:00
encoding.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
enpassant.t Test: Drop default confirmation:off and correct tests accordingly 2015-07-28 19:57:18 +01:00
eval.t.cpp Merge branch '2.4.2' into lexer2 2015-02-22 15:26:22 -05:00
export.t Test: Updated test to have ISO8601 duration value 2015-07-27 20:48:56 -04:00
feature.559.t Test: Convert feature.559.t to Python 2015-07-27 19:42:38 +01:00
feature.608.t Test: Converted to Python 2015-07-22 20:42:47 -04:00
feature.725.t Test: Drop default confirmation:off and correct tests accordingly 2015-07-28 19:57:18 +01:00
feature.891.t Test: Added note about why this test sometimes fails. 2015-07-12 23:47:07 -04:00
feature.1013.t Test: Removed unnecessary method 2015-07-22 20:19:30 -04:00
feature.1061.t Test: Converted to Python 2015-07-22 20:19:58 -04:00
feature.default.project.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
feature.print.empty.columns.t Test: Converted to Python 2015-07-22 18:48:48 -04:00
feature.recurrence.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
filter.t Test: Merged filter-prefix.t and filter-empty.t into filter.t 2015-07-31 16:40:32 -04:00
fontunderline.t Test: Converted to Python 2015-07-05 17:16:24 -04:00
fs.t.cpp Test: Added Path::is_link test 2015-07-17 20:14:35 -04:00
gc.t Tests: Beautify gc.t, add one more GC test 2015-05-05 21:00:39 +02:00
helpers.t Test: Added helper commands test home 2015-07-19 20:31:50 -04:00
history.t Test: Fixed mistake where the 'annual' variant was not run 2015-07-28 00:22:41 -04:00
hooks.env.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
hooks.on-add.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
hooks.on-exit.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
hooks.on-launch.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
hooks.on-modify.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
hyphenate.t Test: Merged bug.804.t into hyphenate.t 2015-07-22 23:04:38 -04:00
i18n.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
ids.t tests: Fix tests expecting comma as a separator 2015-08-06 20:38:39 -04:00
import.t Test: Another UUID validation test 2015-08-09 10:42:15 -04:00
info.t Test: Reduced performance sensitivity 2015-07-27 02:15:24 -04:00
iso8601d.t.cpp ISO8601: Restored support for the UTC & local non-extended full form 2015-07-04 16:04:03 -04:00
iso8601p.t.cpp Test: Migrated Duration test to ISO8601p, which fail 2015-08-09 16:34:04 -04:00
json.t.cpp Build: Resolve some more compiler warnings 2015-03-29 18:03:36 -04:00
json_test.cpp Cleanup: Combined File, Path and Directory into FS 2015-05-25 10:11:41 -04:00
json_test.t Test: convert json_test.t to Python 2015-07-22 16:12:26 +01:00
lexer.t.cpp Test: Added a UUID parse test 2015-08-09 10:35:02 -04:00
limit.t Test: Converted to Python 2015-07-04 23:31:45 -04:00
list.all.projects.t Test: Converted to Python 2015-07-05 16:58:21 -04:00
list.t.cpp C++11: N2672 Initializer lists 2015-05-24 13:03:02 -04:00
log.t Test: Verify error on log of recurring or waiting task 2015-07-17 13:38:50 -04:00
logo.t Test: Test that the logo command produces output 2015-07-17 21:12:22 -04:00
math.t Test: Converted to new form 2015-07-16 18:34:03 -04:00
msg.t.cpp Test: Added test for Msg::all 2015-07-17 19:40:54 -04:00
nag.t Test: Converted to Python 2015-07-03 16:17:39 -04:00
nibbler.t.cpp C++11: N2672 Initializer lists 2015-05-24 13:03:02 -04:00
obfuscate.t Test: Added obfuscation test 2015-07-17 15:42:54 -04:00
oldest.t Test: Corrected broken tests 2015-07-11 13:18:00 -04:00
operators.t Test: Updated task arg call 2015-07-08 09:58:39 -04:00
overdue.t Test: Converted to Python 2015-07-05 17:33:49 -04:00
partial.t Test: Corrected broken tests 2015-07-04 17:03:49 -04:00
prepend.t Test: Converted to use cleaner command to run task 2015-07-03 15:22:56 -04:00
pri_sort.t Test: Converted to Python 2015-07-23 11:09:56 -04:00
problems Test: Add unexpected successes to problems script 2015-07-28 16:57:51 +01:00
project.t Test: Drop default confirmation:off and correct tests accordingly 2015-07-28 19:57:18 +01:00
rc.override.t Test: Converted to Python 2015-07-03 22:43:52 -04:00
README Documentation: Updated README 2015-07-26 17:12:24 -04:00
recurrence.t Test: Reverted change, because deletion propagates, and that's okay 2015-07-28 16:54:10 -04:00
reports.t Test: Added tests for 'reports' command 2015-07-18 00:06:06 -04:00
run_all Tests: Parallelize bash_tap.sh tests 2015-07-20 20:33:52 +02:00
rx.t.cpp Test: Once more... 2015-07-29 00:57:56 -04:00
search.t TW-1472: Syntactic sugar morphs into regex expressions, even if turned off 2015-07-20 00:28:05 -04:00
sequence.t Test: Drop default confirmation:off and correct tests accordingly 2015-07-28 19:57:18 +01:00
shell.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
show.t Test: Added _show test 2015-07-19 20:55:16 -04:00
sorting.t Tests: generalize MetaTest approach 2015-07-22 16:11:15 +01:00
special.t Test: Converted to Python 2015-07-05 17:10:39 -04:00
start.t Test: Drop default confirmation:off and correct tests accordingly 2015-07-28 19:57:18 +01:00
stats.t Test: Drop default confirmation:off and correct tests accordingly 2015-07-28 19:57:18 +01:00
stress_test Test: More Python 3 compatibility changes in accessory files 2015-07-17 19:27:58 +01:00
subproject.t Test: Converted to Python 2015-07-05 17:28:17 -04:00
substitute.t Test: Converted to Python 2015-07-03 21:01:41 -04:00
sugar.t Test: Added sugar testß 2015-08-08 00:25:14 -04:00
t.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
t2.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
t3.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
tag.t Test: Removed another time-sensitive test 2015-08-02 10:13:37 -04:00
taskrc.t Test: Added test of initial .taskrc generation 2015-07-28 10:03:10 -04:00
tdb2.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
template.t Template: Updated to use newer form of task call 2015-07-16 16:20:13 -04:00
test.cpp Test: Added missing include for Cygwin 2015-07-01 18:20:28 -04:00
test.h Tests: Added color to the C++ tests 2015-07-01 16:12:48 -04:00
text.t.cpp Test: Corrected decimal commify tests 2015-07-17 20:19:40 -04:00
timesheet.t Test: Convert timesheet.t to Python 2015-07-23 17:42:16 +01:00
tw-21.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-46.t Tests: Adjust tw-46.t for rc.confirmation=on change 2015-07-29 07:09:23 +02:00
tw-101.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-252.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-262.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-268.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-295.t Test: Corrected escape characters in test 2015-07-11 16:37:20 -04:00
tw-1262.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1300.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1306.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1319.t TW-1319: UDA is NOT sorted corresponding to the order of UDA list entries 2015-07-13 12:27:16 -04:00
tw-1359.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1377.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1379.t Test: Drop default confirmation:off and correct tests accordingly 2015-07-28 19:57:18 +01:00
tw-1381.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1414.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1418.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1419.t Test: Added tw-1419.t 2015-07-13 12:17:27 -04:00
tw-1424.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1430.t TW-1430: Slashes in project names don't work 2015-07-13 09:35:31 -04:00
tw-1436.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1438.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1441.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1445.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1447.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1452.x Unit Tests 2015-02-14 19:10:57 -05:00
tw-1456.t TW-1456: Filter parser does not always handle multiple arguments bundled into one with apostrophes 2015-07-13 12:14:17 -04:00
tw-1468.t Test: Corrected test to use supported features 2015-07-11 17:24:39 -04:00
tw-1469.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1475.t Test: Drop default confirmation:off and correct tests accordingly 2015-07-28 19:57:18 +01:00
tw-1479.t TW-1479: Task arguments not properly parsed if they contain a space 2015-07-13 12:10:47 -04:00
tw-1481.x Tests: Remove unnecessary imports and simplify template.t 2015-06-06 02:52:33 +01:00
tw-1486.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1510.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1521.t TW-1521: task project!=PROJECTNAME does not work (Regression) 2015-07-19 18:09:55 -04:00
tw-1527.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1542.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1549.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
tw-1575.t TW-1575: task log mangles URLs when quoted 2015-07-13 10:41:55 -04:00
tw-1609.t Test: Added tw-1609 test 2015-07-13 08:28:25 -04:00
tw-1612.t TW-1612: Spurious whitespace added in task descriptions around certain symbols 2015-07-13 09:22:23 -04:00
tw-1617.t TW-1617: Can't search for multi-word project 2015-07-13 11:34:43 -04:00
tw-1622.t TW-1622: Duration UDA can't take an algebraic expression 2015-07-16 16:34:39 -04:00
tw-1627.t Test: Removed useless comparison 2015-07-13 11:58:19 -04:00
tw-1630.t Test: Improved tw-1630 tests 2015-08-05 17:07:17 -04:00
tw-1634.t TW-1634: due.not:<date> excludes only tasks scheduled at mitnight 2015-07-19 14:48:35 -04:00
tw-1637.t Test: Added explanation 2015-07-25 14:06:32 -04:00
tw-1643.t TW-1643: Add failing test 2015-07-30 13:13:38 +02:00
uda.t Test: Corrected UDA tests 2015-07-28 00:08:49 -04:00
uda_orphan.t Test: Converted to Python 2015-07-23 22:33:38 -04:00
uda_report.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
uda_sort.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
undo.t Test: Fixed error message 2015-07-28 16:57:40 -04:00
unicode.t Test: Corrected backslash interpretation in test 2015-07-11 14:03:23 -04:00
unique.t Test: Drop default confirmation:off and correct tests accordingly 2015-07-28 19:57:18 +01:00
upgrade.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00
urgency.t Test: Added _urgency command error tests 2015-07-19 21:02:41 -04:00
urgency_inherit.t TW-1572: Implement better urgency inheritance 2015-05-22 23:01:21 +02:00
utf8.t.cpp Unіt Tests 2015-03-07 11:59:37 -05:00
util.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
uuid.t Revert "Test: Corrected wrong status in test" 2015-08-06 22:52:19 -04:00
variant_add.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
variant_and.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
variant_cast.t.cpp Build: More changes to address 32-bit builds 2015-04-18 10:26:37 +01:00
variant_divide.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
variant_equal.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
variant_exp.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
variant_gt.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
variant_gte.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
variant_inequal.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
variant_lt.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
variant_lte.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
variant_match.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
variant_math.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
variant_modulo.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
variant_multiply.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
variant_nomatch.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
variant_not.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
variant_or.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
variant_partial.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
variant_subtract.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
variant_xor.t.cpp Updated copyright to 2015 2015-01-01 00:00:41 -05:00
verbose.t Merge branch '2.4.5' of ssh://git.tasktools.org/tm/task into 2.4.5 2015-07-17 14:40:49 -04:00
version.t Merge branch '2.4.5' of ssh://git.tasktools.org/tm/task into 2.4.5 2015-07-17 14:40:49 -04:00
view.t.cpp Priority: Converted 'priority' attribute to a UDA 2015-04-04 19:30:33 -04:00
wait.t Test: Change most tests to use "add test" instead of split arguments 2015-07-17 19:14:33 +01:00

README
======

This is the task.git/test/README file, and contains notes about the Taskwarrior
test suite.


Running Tests
-------------

TL;DR  cd test && make && ./run_all && ./problems

All unit tests produce TAP (Test Anything Protocol) output, and are run by the
'run_all' test harness.

The 'run_all' script produces an 'all.log' file which is the accumulated output
of all tests. Before executing 'run_all' you need to compile the C++ unit
tests, by running 'make' in the 'test' directory.

The script 'problems' will list all the tests that fail, with a count of the
failing tests, once you have run all the tests and produced an 'all.log' file.

Any TAP harness may be used.

Note that adding the '--serial' option to ./run_all, all tests are executed serially.
The default runs Python, C++ and Bash tests in parallel. Using '--serial' will
make for a slower test run.


Architecture
------------

There are three varieties of tests:

  * C++ unit tests that test low-level object interfaces. These are typically
    very fast tests, and are exhaustive in nature.

  * Python unit tests that are at the highest level, exercising the command
    line, hooks and syncing. There is an example, 'template.t', that shows how
    to perform various high level tests.

  * Bash unit tests, one test per file, using the bash_tap_tw.sh script. These
    tests are small, quick tests, not intended to be permanent.

All tests are named with the pattern '*.t', and any other forms are not run by
the test harness. Additionally a test must be set executable (chmod +x) for it
to be run. In the case of Python tests one can still run them manually by
launching them with 'python test.t' or simply './test.t'. It also allows us to
keep tests submitted for bugs that are not scheduled to be fixed in the
upcoming release, and we don't want the failing tests to prevent us from seeing
100% pass rate for the bugs we *have* fixed.


Goals
-----

The test suite is evolving, and becoming a better tool for determining whether
code is ready for release. There are goals that shape these changes, and they
are:

  * Increase test coverage by testing more features, more thoroughly. The test
    coverage level is (as of 2015-07-24) at 86.5%.

  * Write fewer bug regression tests. Over time, bug regression tests are less
    useful than feature tests, and more likely to contain overlapping coverage.

  * Eliminate obsolete tests, which are tests that have overlapping coverage.
    This means migrate bug-specific tests to feature tests.


What Makes a Good Test
----------------------

A good test ensures that a feature is functioning as expected, and contains
both positive and negative aspects, or in other words looks for expected
behavior as well as looking for the absence of unexpected behavior.


Conventions for writing a test
------------------------------

If you wish to contribute tests, please consider the following guidelines:

  * Tests created after bugs or feature requests should (ideally) have an entry
    on https://bug.tasktools.org/ and should include the issue ID in a
    docstring or comment.

  * Tests should be added to the file that best matches the "thing" being
    tested. For instance, a test on filters should live in filter.t

  * Class and method names should be descriptive of what they are testing.
    Example: TestFilterOnReports

  * Docstrings on Python tests are mandatory. The first line is used as title
    of the test.

  * Extra information and details should go into multi-line docstrings or
    comments.

  * Python tests for bugs or features not yet fixed/implemented should be
    decorated with: @unittest.skip("WaitingFor TW-xxxx"). We would rather have
    a live test that is skipped, than no test.


How to Submit a Test Change/Addition
------------------------------------

Mail it to support@taskwarrior.org, or attach it to an open bug.


Wisdom
------

Here are some guildelines that may help:

  * If there are any lexer.t tests failing, then ignore all the others and fix
    these first. They are fundamental and affect everything else. One Lexer
    failure can cause 30 symptomatic failures, and addressing any of those is
    wrong.

  * If any of the C++ tests fail, fix them next, for the same reason as above.

  * If you are about to fix a bug, and no tests are failing, add tests that fail
    in a script named tw-XXXX.t. Later, someone will incorporate that test
    script into higher-level feature tests.

  * If the command line parser is not working, always blame the Lexer.

  * While the lowest level (C++) tests should be exhaustive, higher level tests
    should not do the same by iterating over the entire problem space. It is a
    waste of time.

  * If you find that you are combining two features into one test, you are
    probably doing it wrong.

  * If you add a feature, then add a test to prove it works, also add a test to
    prove it doesn't simultaneously generate errors. Furthermore test that with
    the feature disabled, or command line arguments missing, appropriate errors
    are reported.


TODO
----

For anyone looking for test-related tasks to take on, here are some suggestions:

  * Find and eliminate duplicate tests.

  * Using <attribute>.startswith:<value> with rc.regex:off still uses regex.

  * Import JSON validates absolutely no attributes.  Create tests with bad data
    in all fields, to exercise validation.

  * Crazy dateformat values are not tested.

  * Invalid UTF8 is not tested.

  * All the attribute modifiers need to be tested, only a few are.

  * Aliases are not well tested, and fragile.

---