Nick Mathewson
9f50a92a7e
Fix a macro in address.c so coccinelle can understand it
2019-10-22 09:32:13 -04:00
Nick Mathewson
0abe89519b
timers.c: define TIMEOUT_PUBLIC to no tokens when using COCCI.
2019-10-22 09:32:13 -04:00
Nick Mathewson
9453746b5e
dispatch_naming.c: when COCCI is defined, disable unparseable macros.
2019-10-22 09:32:13 -04:00
Nick Mathewson
04a74d4aa7
conftesting.h: when COCCI is defined, disable unhandled macros
2019-10-22 09:32:13 -04:00
Nick Mathewson
3e41459dff
confmacros.h: fix coccinelle parsing.
2019-10-22 09:32:13 -04:00
Nick Mathewson
54c5366aa1
feature/control: wrap some problem macros in COCCI
2019-10-22 09:32:13 -04:00
Nick Mathewson
d6ce8527f8
tor-coccinelle.h: add a definition for EXTERN
2019-10-22 09:32:13 -04:00
Nick Mathewson
ef5d1e6b65
consdiff disable a macro when running with COCCI
2019-10-22 09:32:13 -04:00
Nick Mathewson
d9bad0203b
Disable a couple of iterator macros when COCCI is defined.
2019-10-22 09:32:13 -04:00
Nick Mathewson
67247fa9ac
Use various COCCI tests to get mainloop.c to parse.
2019-10-22 09:32:13 -04:00
Nick Mathewson
4fad456148
test: Hide some test-declaration macro definitions to COCCI.
...
(These ones cause parsing failures.)
2019-10-22 09:32:13 -04:00
Nick Mathewson
6696a5bbae
tor-coccinelle.h: add HANDLE_{DECL,IMPL}
2019-10-22 09:32:13 -04:00
Nick Mathewson
d129b503c0
tor-coccinelle.h: add EAT_SEMICOLON
2019-10-22 09:32:13 -04:00
Nick Mathewson
c1e8e5bb32
Apparently coccinelle can't handle multiline #errors.
2019-10-22 09:32:13 -04:00
Nick Mathewson
b03c8c74ce
COCCI: Disable some buffers.c macros that coccinelle can't handle.
2019-10-22 09:32:13 -04:00
Nick Mathewson
2e64dfea95
tor-coccinelle.h: add CHECK_SCANF
2019-10-22 09:32:13 -04:00
Nick Mathewson
b867e97ce6
With COCCI defined, avoid PERIODIC_EVENT.
...
Coccinelle doesn't understand the particular pattern of token
pasting we have going on here.
2019-10-22 09:32:05 -04:00
Nick Mathewson
48be922160
COCCI: disable DOWLOAD_SCHEDULE macro
2019-10-22 09:31:31 -04:00
Nick Mathewson
7798c53c98
tor-coccinelle.h: add MOCK_DECL
2019-10-22 09:24:25 -04:00
Nick Mathewson
18f1624bbe
tor-coccinelle.h: handle SLIST and LIST.
2019-10-22 09:24:25 -04:00
Nick Mathewson
630d8c7a1a
With coccinelle, avoid includes in the middle of an expression.
2019-10-22 09:24:25 -04:00
Nick Mathewson
a2bb66c355
Add a "COCCI" macro that we tell coccinelle is always defined.
...
This will let us give specific in-file equivalents to given macros
or preprocessor directives, to make things parse.
2019-10-22 09:24:25 -04:00
Nick Mathewson
ea47e53252
tor-coccinelle.h: handle NS and NS_DECL.
2019-10-22 09:24:25 -04:00
Nick Mathewson
017c62000c
tor-coccinelle: handle SIMPLEQ and TAILQ better.
2019-10-22 09:24:25 -04:00
Nick Mathewson
c13c0c8999
tor-coccinelle.h: Add {EN,DIS}ABLE_GCC_WARNING.
2019-10-22 09:24:25 -04:00
Nick Mathewson
eb1260e346
tor-coccinelle: expect parentheses after HT_INITIALIZER
2019-10-22 09:24:25 -04:00
Nick Mathewson
9871fcbcd9
Use #warning instead of #warn: one is C and one isn't.
2019-10-22 09:24:25 -04:00
Nick Mathewson
51c2097586
try_parse.sh: add a verbose mode and a meaningful exit code.
2019-10-22 09:24:25 -04:00
Nick Mathewson
9ab96550da
document test-operator-cleanup
2019-10-22 09:24:25 -04:00
Nick Mathewson
4ab85f4928
Document tor-coccinelle.h
2019-10-09 09:23:49 -04:00
Nick Mathewson
a2bd93456f
Changes file for coccinelle scripts
2019-09-11 18:50:43 -04:00
Nick Mathewson
ded6d9fcb4
Run test_operator_cleanup on our unit tests
...
Coccinelle doesn't understand it when we use "==" and "!=" and so on as
arguments to macros. To solve this, we prefer OP_EQ, OP_NE, and so
on.
This commit is automatically generated by running
./scripts/coccinelle/test_operator_cleanup over all of the source
code in src.
2019-09-11 18:47:19 -04:00
Nick Mathewson
25ed698fb8
Add some more of our trickier macros to tor-coccinelle.h
...
Note that this header file behaves a bit strangely. It is used by
coccinelle just for the purpose of knowing how to parse
difficult-to-parse stuff. It doesn't need to produce good C -- just
grammatical C.
2019-09-11 18:45:52 -04:00
Nick Mathewson
c6191983e9
Add a script to tell whether a file can be perfectly parsed by spatch
...
spatch can let us know whether a file has parsed "perfectly" or
not. The more perfect it parses, the likelier any semantic patches
are to apply. I've used this script to identify problem areas in
our code.
2019-09-11 18:44:10 -04:00
Nick Mathewson
9a101c2c0f
Add a script to run spatch with appropriate arguments
...
It's a bit tricky to remember the right incantation to get the
proper include paths and incantations for coccinelle, but without
it, coccinelle is less effective at parsing our C.
2019-09-11 18:43:16 -04:00
David Goulet
41261c3b5c
Merge branch 'tor-github/pr/1296'
2019-09-11 09:42:31 -04:00
Nick Mathewson
478141e617
Document inconsistent usage of config_var_is_listable()
...
See also ticket 31654.
2019-09-11 09:42:19 -04:00
Nick Mathewson
e61bfd0bfd
Extract common list of flags to use for obsolete variables.
2019-09-11 09:42:19 -04:00
Nick Mathewson
fe5033d3b0
Clarify documentation on config_var_is_listable()
...
Here we make it clear we're only looking at listable variable names,
not at whether the variables themselves are gettable.
Also, remove an extraneous h.
(This commit is not a fixup, because of rebase conflicts.)
2019-09-11 09:42:19 -04:00
Nick Mathewson
14f48cb083
Add test_cmdline.sh to distribution.
2019-09-11 09:42:19 -04:00
Nick Mathewson
7a8ea0d3c3
integration test for --list-torrc-options
...
(This option tests our existing behavior, not necessarily the most
sensible behavior.)
2019-09-11 09:42:19 -04:00
Nick Mathewson
5ffe6ec0e3
Test: Make sure NOLIST options are not listed.
2019-09-11 09:42:19 -04:00
Nick Mathewson
d545fe1992
Changes file for 31625 (config flag refactor)
2019-09-11 09:42:19 -04:00
Nick Mathewson
bbd40e690e
Revise documentation on CFLG_* flags
2019-09-11 09:42:19 -04:00
Nick Mathewson
0d6d96396c
Remove all CVFLAG_* usage.
2019-09-11 09:42:19 -04:00
Nick Mathewson
5ca5d196ac
Remove all VTFLAG_* usage.
2019-09-11 09:42:19 -04:00
Nick Mathewson
9b571d4729
confparse, conftypes: Replace flags with their new names.
...
The old names remain as #defines that cause variables to get one or
more flags.
Now every flag-testing function in confparse.c tests exactly one flag.
2019-09-11 09:42:19 -04:00
Nick Mathewson
1b3b6d9f2d
Replace low-level {var_type,struct_var}_is_*() with flag inspection
...
Since the flags are now stored with compatible numbering, we can
just OR them together and see whether the flag we want is in the
result.
(Net code removal!)
2019-09-11 09:42:19 -04:00
Nick Mathewson
4b92f4c83a
Re-number VTFLAG_* values so they don't conflict with CVFLAG_*
2019-09-11 09:42:19 -04:00
Nick Mathewson
c650ab8061
Move VTFLAG_* declarations to conftypes.h
2019-09-11 09:42:19 -04:00