# Testing readtags

roundtrip target verifies the behavior of readtags command. It reuses expected.tags files under Units as input files for readtags. All tags in all expected.tags files are searched with readtags. If a tag cannot be found with readtags, the roundtrip target reports the readtags command line that specifies the tag and the path for expected.tags file.

Example of running the target

    $ make roundtrip
    FAILED: ./readtags -t Units/sh-statements.d/expected.tags -starting-with-dash
    FAILED: ./readtags -t Units/sh-statements.d/expected.tags -starting-with-dash_2
    FAILED: ./readtags -t Units/sh-statements.d/expected.tags -starting-with-dash_inner
    FAILED: ./readtags -t Units/parser-c.r/backslash-at-the-end-of-pattern.d/expected.tags M
    FAILED: ./readtags -t Units/simple-diff.d/expected.tags -0,0
    FAILED: ./readtags -t Units/simple-diff.d/expected.tags -1,2
    FAILED: ./readtags -t Units/simple-diff.d/expected.tags -28,6
    FAILED: ./readtags -t Units/simple-diff.d/expected.tags -44,6
    FAILED: ./readtags -t Units/review-needed.r/3526726.tex.t/expected.tags -r
        ...
    Makefile:498: recipe for target 'roundtrip' failed
    make: *** [roundtrip] Error 1

On CI/CD environments, the target uses only marked expected.tags files instead of using all the expected.tags files because the roundtrip target took too long time.

An empty file named minitrip acts as the marker. Before processing an expected.tags, the target looks for minitrip file at the directory where expected.tags is. If it finds minitrip file, the target processes the expected.tags. If not, the target ignores the expected.tags.