Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test scripts robustness #7

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

ianhinder
Copy link
Contributor

store-ref-data.sh: Ensure run from testing directory and make more robust

  • Add shopt -s nullglob to make sure that ../examples/*
    expands to nothing rather than to itself when there are no matches.
    Otherwise, running in the LIFE directory leads to rm -rf *!
  • Add an explicit check that the script is run in the right directory, and
    give a helpful error message if it isn't.
  • Quote variable expansions. This ensures that the script works if there
    are spaces or shell metacharacters in variables. It would also have
    stopped the "*" being interpreted as a wildcard.
  • Remove variable expansions from printf format string. If the variables
    have printf format characters (e.g. %) in them, it would lead to unintended
    results.

Mostly, this is just defensive bash programming. Issues like these can
be found easily using shellcheck, either on the command line, or at
https://www.shellcheck.net. Integrating a shell checker in your editor
is also helpful (I use flycheck for emacs).

Or just use python :)

run-tests.sh: Add check for correct directory and make more robust

Now passes shellcheck.

--

I have tested that storing the reference data and running the tests works after this change.

…bust

- Add `shopt -s nullglob` to make sure that `../examples/*`
  expands to nothing rather than to itself when there are no matches.
  Otherwise, running in the LIFE directory leads to `rm -rf *`!
- Add an explicit check that the script is run in the right directory, and
  give a helpful error message if it isn't.
- Quote variable expansions.  This ensures that the script works if there
  are spaces or shell metacharacters in variables. It would also have
  stopped the "*" being interpreted as a wildcard.
- Remove variable expansions from printf format string.  If the variables
  have printf format characters (e.g. %) in them, it would lead to unintended
  results.

Mostly, this is just defensive bash programming.  Issues like these can
be found easily using `shellcheck`, either on the command line, or at
https://www.shellcheck.net.  Integrating a shell checker in your editor
is also helpful (I use flycheck for emacs).

Or just use python :)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant