Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
ccan
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
mirror
ccan
Commits
0621cac3
Commit
0621cac3
authored
Dec 05, 2011
by
Rusty Russell
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ccanlint: use ccan/autodata
Gets rid of generated file.
parent
446eaa5f
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
47 additions
and
44 deletions
+47
-44
tools/ccanlint/Makefile
tools/ccanlint/Makefile
+3
-9
tools/ccanlint/ccanlint.c
tools/ccanlint/ccanlint.c
+6
-7
tools/ccanlint/ccanlint.h
tools/ccanlint/ccanlint.h
+3
-1
tools/ccanlint/tests/info_documentation_exists.c
tools/ccanlint/tests/info_documentation_exists.c
+11
-7
tools/ccanlint/tests/tests_exist.c
tools/ccanlint/tests/tests_exist.c
+9
-8
tools/ccanlint/tests/tests_pass_valgrind.c
tools/ccanlint/tests/tests_pass_valgrind.c
+15
-12
No files found.
tools/ccanlint/Makefile
View file @
0621cac3
...
...
@@ -3,6 +3,7 @@ TEST_OBJS := $(TEST_CFILES:.c=.o)
CORE_OBJS
:=
\
ccan/asort/asort.o
\
ccan/autodata/autodata.o
\
ccan/dgraph/dgraph.o
\
ccan/foreach/foreach.o
\
ccan/grab_file/grab_file.o
\
...
...
@@ -14,6 +15,7 @@ CORE_OBJS := \
ccan/opt/opt.o
\
ccan/opt/parse.o
\
ccan/opt/usage.o
\
ccan/ptr_valid/ptr_valid.o
\
ccan/read_write_all/read_write_all.o
\
ccan/str/str.o ccan/str/debug.o
\
ccan/str_talloc/str_talloc.o
\
...
...
@@ -32,17 +34,9 @@ CORE_OBJS := \
OBJS
:=
$(CORE_OBJS)
$(TEST_OBJS)
# FIXME: write a trivial C program to do this
tools/ccanlint/generated-testlist
:
$(TEST_CFILES)
cat
$^
|
grep
^REGISTER_TEST
>
$@
$(TEST_OBJS)
:
tools/ccanlint/generated-testlist
# Otherwise, ccanlint.c et al. may fail to build
$(CORE_OBJS)
:
tools/ccanlint/generated-testlist config.h
$(CORE_OBJS)
:
config.h
tools/ccanlint/ccanlint
:
$(OBJS)
ccanlint-clean
:
$(RM)
tools/ccanlint/generated-testlist
$(RM)
tools/ccanlint/ccanlint
tools/ccanlint/ccanlint.c
View file @
0621cac3
...
...
@@ -279,19 +279,18 @@ static bool check_names(const char *member, struct ccanlint *c,
return
true
;
}
#undef REGISTER_TEST
#define REGISTER_TEST(name, ...) extern struct ccanlint name
#include "generated-testlist"
static
void
init_tests
(
void
)
{
struct
ccanlint_map
names
;
struct
ccanlint
**
table
;
size_t
i
,
num
;
strmap_init
(
&
tests
);
#undef REGISTER_TEST
#define REGISTER_TEST(name) register_test(&name)
#include "generated-testlist"
table
=
autodata_get
(
ccanlint_tests
,
&
num
);
for
(
i
=
0
;
i
<
num
;
i
++
)
register_test
(
table
[
i
]);
autodata_free
(
table
);
strmap_iterate
(
&
tests
,
init_deps
,
NULL
);
...
...
tools/ccanlint/ccanlint.h
View file @
0621cac3
...
...
@@ -3,11 +3,13 @@
#include "config.h"
#include <ccan/list/list.h>
#include <ccan/dgraph/dgraph.h>
#include <ccan/autodata/autodata.h>
#include <stdbool.h>
#include "../doc_extract.h"
#include "licenses.h"
#define REGISTER_TEST(name, ...) extern struct ccanlint name
AUTODATA_TYPE
(
ccanlint_tests
,
struct
ccanlint
);
#define REGISTER_TEST(test) AUTODATA(ccanlint_tests, &test)
/* 0 == Describe failed tests.
1 == Describe results for partial failures.
...
...
tools/ccanlint/tests/info_documentation_exists.c
View file @
0621cac3
...
...
@@ -15,7 +15,16 @@
#include <ccan/noerr/noerr.h>
#include <ccan/grab_file/grab_file.h>
REGISTER_TEST
(
info_documentation_exists
);
static
void
check_info_documentation_exists
(
struct
manifest
*
m
,
unsigned
int
*
timeleft
,
struct
score
*
score
);
static
struct
ccanlint
info_documentation_exists
=
{
.
key
=
"info_documentation_exists"
,
.
name
=
"Module has documentation in _info"
,
.
check
=
check_info_documentation_exists
,
.
needs
=
"info_exists"
};
static
void
create_info_template_doc
(
struct
manifest
*
m
,
struct
score
*
score
)
{
...
...
@@ -95,10 +104,5 @@ static void check_info_documentation_exists(struct manifest *m,
}
}
struct
ccanlint
info_documentation_exists
=
{
.
key
=
"info_documentation_exists"
,
.
name
=
"Module has documentation in _info"
,
.
check
=
check_info_documentation_exists
,
.
needs
=
"info_exists"
};
REGISTER_TEST
(
info_documentation_exists
);
tools/ccanlint/tests/tests_exist.c
View file @
0621cac3
...
...
@@ -10,6 +10,15 @@
#include <err.h>
#include <ccan/talloc/talloc.h>
static
void
check_tests_exist
(
struct
manifest
*
m
,
unsigned
int
*
timeleft
,
struct
score
*
score
);
static
struct
ccanlint
tests_exist
=
{
.
key
=
"tests_exist"
,
.
name
=
"Module has test directory with tests in it"
,
.
check
=
check_tests_exist
,
.
needs
=
"info_exists"
};
REGISTER_TEST
(
tests_exist
);
static
void
handle_no_tests
(
struct
manifest
*
m
,
struct
score
*
score
)
...
...
@@ -126,11 +135,3 @@ static void check_tests_exist(struct manifest *m,
score
->
pass
=
true
;
score
->
score
=
score
->
total
;
}
struct
ccanlint
tests_exist
=
{
.
key
=
"tests_exist"
,
.
name
=
"Module has test directory with tests in it"
,
.
check
=
check_tests_exist
,
.
needs
=
"info_exists"
};
tools/ccanlint/tests/tests_pass_valgrind.c
View file @
0621cac3
...
...
@@ -18,9 +18,6 @@
#include <string.h>
#include <ctype.h>
REGISTER_TEST
(
tests_pass_valgrind
);
REGISTER_TEST
(
tests_pass_valgrind_noleaks
);
/* Note: we already test safe_mode in run_tests.c */
static
const
char
*
can_run_vg
(
struct
manifest
*
m
)
{
...
...
@@ -29,6 +26,20 @@ static const char *can_run_vg(struct manifest *m)
return
NULL
;
}
static
void
do_leakcheck_vg
(
struct
manifest
*
m
,
unsigned
int
*
timeleft
,
struct
score
*
score
);
static
struct
ccanlint
tests_pass_valgrind_noleaks
=
{
.
key
=
"tests_pass_valgrind_noleaks"
,
.
name
=
"Module's run and api tests have no memory leaks"
,
.
check
=
do_leakcheck_vg
,
.
takes_options
=
true
,
.
needs
=
"tests_pass_valgrind"
};
REGISTER_TEST
(
tests_pass_valgrind_noleaks
);
/* Example output:
==2749== Conditional jump or move depends on uninitialised value(s)
==2749== at 0x4026C60: strnlen (mc_replace_strmem.c:263)
...
...
@@ -257,12 +268,4 @@ struct ccanlint tests_pass_valgrind = {
.
takes_options
=
true
,
.
needs
=
"tests_pass"
};
struct
ccanlint
tests_pass_valgrind_noleaks
=
{
.
key
=
"tests_pass_valgrind_noleaks"
,
.
name
=
"Module's run and api tests have no memory leaks"
,
.
check
=
do_leakcheck_vg
,
.
takes_options
=
true
,
.
needs
=
"tests_pass_valgrind"
};
REGISTER_TEST
(
tests_pass_valgrind
);
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment