tor/scripts
Nick Mathewson db94d7fed2 Update cov-diff to handle new gcov, and remove timestamps
The new gcov sometimes emits *s if there is a line containing
multiple basic blocks, and some are not executed.  (The gcov
documentation says something weird about this point, so I'm trying
to interpret it into the compilerese that I'm familiar with.)
That's bug 26101.

Also, when we're looking for unique variations in our coverage, we
would like cov-diff to suppress timestamps on the diffs.  That's bug
26102.

Both of these are bugfixes on 0.2.5.1-alpha when the cov-diff script
was introduced.

My apologies for the perl.
2018-05-14 18:04:10 -04:00
..
coccinelle Add Coccinelle patch for replacing NULL/non-NULL tt_assert(). 2017-08-24 15:22:20 -04:00
codegen all the other lines here had a tab; make this one blend in 2017-10-31 23:07:47 -04:00
maint Remove a comment about 0.2.8 that will soon be irrelevant. 2018-04-18 10:44:25 -04:00
test Update cov-diff to handle new gcov, and remove timestamps 2018-05-14 18:04:10 -04:00
README Add scripts/coccinelle to scripts/README 2014-08-15 11:03:15 -04:00

The scripts directory holds tools for use in building, generating, testing,
and maintaining the Tor source code.  It is mainly for use by developers.

Code maintenance scripts
------------------------

maint/checkLogs.pl -- Verify that Tor log statements are unique.

maint/check_config_macros.pl -- Look for autoconf tests whose results are
never used.

maint/checkOptionDocs.pl -- Make sure that Tor options are documented in the
manpage, and that the manpage only documents real Tor options.

maint/checkSpaces.pl -- Style checker for the Tor source code.  Mainly checks
whitespace.

maint/findMergedChanges.pl -- Find a set of changes/* files that have been
merged into an upstream version.

maint/format_changelog.py -- Flow the changelog into the proper format.

maint/redox.py -- Find places that should have DOCDOC comments to indicate a
need for doxygen comments, and put those comments there.

maint/updateVersions.pl -- Update the version number in the .nsi and windows
orconfig.h files.


Testing scripts
---------------

test/cov-blame -- Mash up the results of gcov with git blame.  Mainly useful
to find out who has been writing untested code.

test/cov-diff -- Compare two directories of gcov files to identify changed
lines without coverage.

test/coverage -- Generates a directory full of gcov files. You need to use
this script instead of calling gcov directly because of our confusingly named
object files.

test/scan-build.sh -- Example script for invoking clang's scan-build
static analysis tools.


Code generation scripts
-----------------------

codegen/gen_linux_syscalls.pl -- Generate a table mapping linux syscall
numbers to their names.

codegen/gen_server_ciphers.py -- Generate a sorted list of TLS ciphersuites
for servers to choose from.

codegen/get_mozilla_ciphers.py -- Generate a list of TLS ciphersuites for
clients to use in order to look like Firefox.

Code transformation scripts
---------------------------

coccinelle/calloc.cocci -- Transform code to replace variants of
malloc(a*b) with calloc(a,b)