cartodb-postgresql
cartodb-postgresql copied to clipboard
Refactor to make scripts POSIX compliant
Hi,
This pull request is a proposal for a refactoring of test files to use Bourne Shell POSIX compliant features and syntax. The main benefits of this change is that tests can be executed with other POSIX compliant shells, not only with Bash. This is especially useful in certain contexts where the system doesn't include Bash installed by default or to increase tests execution performance in pipelines using other shells.
Implementation details
- Shebangs have been fixed because the test files were being run with
bash
but their shebangs were pointing to/bin/sh
(Bourne Shell). Changed to/usr/bin/env sh
to give more flexibility about whichsh
implementation will use (see "POSIX shell scripts shebang #!/bin/sh vs #!/usr/bin/env sh, any difference?" in StackExchange). This allow to execute the tests directly with./path/to/file.sh
and the underlying system can determine which shell should use. - Local scoped variable names have been prepended with the name of the function that scopes them to avoid colissions between variable names. This decreases readability of the code but is strict POSIX compliant and required to make it work in Solaris SunOS and other strange systems. Let me know if other practice is preferred instead.
- Common helper functions are now reused between test scripts.