aboutsummaryrefslogtreecommitdiff
path: root/test/T360-symbol-hiding.sh
AgeCommit message (Collapse)Author
2026-03-06test: add user-configurable TEST_READELF variableLucio Sauer
This allows tests to pass on systems where the readelf executable is prefixed with a target triple. Signed-off-by: Lucio Sauer <watermanpaint@posteo.net>
2023-07-21test: support testing notmuch as installedDavid Bremner
We put some effort into testing the built copy rather than some installed copy. On the other hand for people like packagers, testing the installed copy is also of interest. When NOTMUCH_TEST_INSTALLED is set to a nonempty value, tests do not require a built notmuch tree or running configure. Some of the tests marked as broken when running against installed notmuch are probably fixable.
2021-03-20lib/open: Use check for existing database by trial openingDavid Bremner
This is a bit heavyweight for now, but it will make more sense when we check multiple locations for the Xapian database.
2020-12-25test/T360-symbol-hiding.sh: trim extra output from readelfDavid Bremner
readelf on (at least) ppc64le sometimes generates some extension to the Ndx name inside '[]'. Remove this output to allow our simple column based parsing to work.
2020-12-13test/T360-symbol-hiding: use readelf in place of nmDavid Bremner
It turns out that using nm -P isn't as portable as hoped. In particular with some ELF ABIs (e.g. ppc64 ELFv1), the desired symbols end up in the data section instead of text. The test is currently only functional on ELF based architectures, so I think it's legit to depend on readelf instead of nm. The switch to readelf has the advantage that we can explicitely ask for all of the symbols with global visibility, rather than grepping for notmuch. That seems a more robust approach since it will catch any strangely named global symbols.
2020-07-31test: drop NOTMUCH_DEFAULT_XAPIAN_BACKEND from T360-symbol-testDavid Bremner
Inspired by the suggestion of id:20200727154108.16269-3-congdanhqx@gmail.com to drop the configuration test for the default backend. This version is hopefully robust against backend changes.
2017-10-20test: use source and build paths in T360-symbol-hiding.shJani Nikula
Make a distinction between source and build directories.
2017-10-20test: use $(dirname "$0") for sourcing test-lib.shJani Nikula
Don't assume the tests are always run from within the source tree.
2017-05-12build: switch to hiding libnotmuch symbols by defaultJani Nikula
The dynamic generation of the linker version script for libnotmuch exports has grown rather complicated. Reverse the visibility control by hiding symbols by default using -fvisibility=hidden, and explicitly exporting symbols in notmuch.h using #pragma GCC visibility. (We could also use __attribute__ ((visibility ("default"))) for each exported function, but the pragma is more convenient.) The above is not quite enough alone, as it would "leak" a number of weak symbols from Xapian and C++ standard library. Combine it with a small static version script that filters out everything except the notmuch_* symbols that we explicitly exposed, and the C++ RTTI typeinfo symbols for exception handling. Finally, as the symbol hiding test can no longer look at the generated symbol table, switch the test to parse the functions from notmuch.h.
2016-06-11test: set LD_LIBRARY_PATH early and keep its old contentsTomi Ollila
Previously LD_LIBRARY_PATH was exported (and environment changed) in the middle of test case execution, when a function setting it was called. Previously the old contents of LD_LIBRARY_PATH was lost (if any) when it was re-set and exported. In some systems the old contents of LD_LIBRARY_PATH was needed to e.g. locate suitable gmime library.
2016-06-05Use https instead of http where possibleDaniel Kahn Gillmor
Many of the external links found in the notmuch source can be resolved using https instead of http. This changeset addresses as many as i could find, without touching the e-mail corpus or expected outputs found in tests.
2016-04-12test: cope with glass backend file naming variationsDavid Bremner
In several places in the test suite we intentionally corrupt the Xapian database in order to test error handling. This corruption is specific to the on-disk organization of the database, and that changed with the glass backend. We use the previously computed default backend to make the tests adapt to changing names.
2016-03-14test: canonicalize quotes in xapian error messagesDavid Bremner
These differ between 1.2 and 1.3, so we transform the 1.2 backquote to a single quote for compatibility
2015-08-07test: make script exit (1) if it "fails" to source (.) a fileTomi Ollila
The files (test) scripts source (with builtin command `.`) provides information which the scripts depend, and without the `source` to succeed allowing script to continue may lead to dangerous situations (e.g. rm -rf "${undefined_variable}"/*). At the end of all source (.) lines construct ' || exit 1' was added; In our case the script script will exit if it cannot find (or read) the file to be sourced. Additionally script would also exits if the last command of the sourced file exited nonzero.
2015-06-12lib: reject relative paths in n_d_{create,open}_verboseDavid Bremner
There are many places in the notmuch code where the path is assumed to be absolute. If someone (TM) wants a project, one could remove these assumptions. In the mean time, prevent users from shooting themselves in the foot. Update test suite mark tests for this error as no longer broken, and also convert some tests that used relative paths for nonexistent directories.
2015-04-08test: be consistent about spelling `nonexistent'David Bremner
Apparently most of the misspellings are my fault.
2014-09-13test: simplify T360-symbol-hiding, use nm instead of objdumpDavid Bremner
After yet another variation in objdump output caused this test to fail (on a Debian port, no less), I decided whatever putative benefit we get from looking at the object files instead of the library isn't worth the maintenence headache. This version uses nm -P. nm -P should be portable, and fixed format. It purposely doesn't use the -D argument, since that is non-POSIX and nm on GNU/Linux seems do the right thing without it. It still won't work out of the box on e.g. Mac OS/X. I think the right thing to do there is to move some more configuration information into sh.config.
2014-01-13test: renamed test scripts to format T\d\d\d-name.shTomi Ollila
All test scripts to be executed are now named as T\d\d\d-name.sh, numers in increments of 10. This eases adding new tests and developers to see which are test scripts that are executed by test suite and in which order.