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
98253905
Commit
98253905
authored
Aug 27, 2010
by
Rusty Russell
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ccanlint: chdir to temporary dir so gcov files land there.
This means parallel "make check" works again.
parent
a200e1ad
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
18 additions
and
35 deletions
+18
-35
tools/ccanlint/ccanlint.c
tools/ccanlint/ccanlint.c
+10
-2
tools/ccanlint/tests/build-coverage.c
tools/ccanlint/tests/build-coverage.c
+0
-20
tools/ccanlint/tests/build-coverage.h
tools/ccanlint/tests/build-coverage.h
+0
-8
tools/ccanlint/tests/run-coverage.c
tools/ccanlint/tests/run-coverage.c
+0
-3
tools/tools.c
tools/tools.c
+7
-2
tools/tools.h
tools/tools.h
+1
-0
No files found.
tools/ccanlint/ccanlint.c
View file @
98253905
...
...
@@ -333,7 +333,7 @@ int main(int argc, char *argv[])
unsigned
int
score
=
0
,
total_score
=
0
;
struct
manifest
*
m
;
struct
ccanlint
*
i
;
const
char
*
prefix
=
""
,
*
dir
=
"."
;
const
char
*
prefix
=
""
,
*
dir
=
talloc_getcwd
(
NULL
)
;
init_tests
();
...
...
@@ -344,7 +344,11 @@ int main(int argc, char *argv[])
while
((
c
=
getopt
(
argc
,
argv
,
"sd:vnlx:t:k:"
))
!=
-
1
)
{
switch
(
c
)
{
case
'd'
:
dir
=
optarg
;
if
(
optarg
[
0
]
!=
'/'
)
dir
=
talloc_asprintf_append
(
NULL
,
"%s/%s"
,
dir
,
optarg
);
else
dir
=
optarg
;
prefix
=
talloc_append_string
(
talloc_basename
(
NULL
,
optarg
),
": "
);
...
...
@@ -383,6 +387,10 @@ int main(int argc, char *argv[])
if
(
optind
<
argc
)
usage
(
argv
[
0
]);
/* We move into temporary directory, so gcov dumps its files there. */
if
(
chdir
(
temp_dir
(
talloc_autofree_context
()))
!=
0
)
err
(
1
,
"Error changing to %s temporary dir"
,
temp_dir
(
NULL
));
m
=
get_manifest
(
talloc_autofree_context
(),
dir
);
/* If you don't pass the compulsory tests, you don't even get a score */
...
...
tools/ccanlint/tests/build-coverage.c
View file @
98253905
...
...
@@ -13,7 +13,6 @@
#include <err.h>
#include <string.h>
#include <ctype.h>
#include "build-coverage.h"
/* Note: we already test safe_mode in run_tests.c */
static
const
char
*
can_run_coverage
(
struct
manifest
*
m
)
...
...
@@ -87,23 +86,6 @@ static char *lib_list(const struct manifest *m)
return
ret
;
}
/* Grrr... gcov drops a turd in the current directory. */
void
move_gcov_turd
(
const
char
*
dir
,
struct
ccan_file
*
file
,
const
char
*
extension
)
{
char
*
base
,
*
gcovfile
,
*
gcovdest
;
base
=
talloc_basename
(
file
,
file
->
name
);
gcovfile
=
talloc_asprintf
(
file
,
"%s/%.*s%s"
,
dir
,
strlen
(
base
)
-
2
,
base
,
extension
);
gcovdest
=
talloc_asprintf
(
file
,
"%s/%.*s%s"
,
talloc_dirname
(
base
,
file
->
cov_compiled
),
strlen
(
base
)
-
2
,
base
,
extension
);
if
(
!
move_file
(
gcovfile
,
gcovdest
))
err
(
1
,
"Could not move %s to %s"
,
gcovfile
,
gcovdest
);
talloc_free
(
base
);
}
static
char
*
cov_compile
(
const
void
*
ctx
,
struct
manifest
*
m
,
struct
ccan_file
*
file
,
...
...
@@ -111,7 +93,6 @@ static char *cov_compile(const void *ctx,
bool
keep
)
{
char
*
errmsg
;
char
path
[
PATH_MAX
];
file
->
cov_compiled
=
maybe_temp_file
(
ctx
,
""
,
keep
,
file
->
fullname
);
errmsg
=
compile_and_link
(
ctx
,
file
->
fullname
,
ccan_dir
,
...
...
@@ -123,7 +104,6 @@ static char *cov_compile(const void *ctx,
return
errmsg
;
}
move_gcov_turd
(
getcwd
(
path
,
sizeof
(
path
)),
file
,
".gcno"
);
return
NULL
;
}
...
...
tools/ccanlint/tests/build-coverage.h
deleted
100644 → 0
View file @
a200e1ad
#ifndef CCANLINT_BUILD_COVERAGE_H
#define CCANLINT_BUILD_COVERAGE_H
/* FIXME: gcov dumps a file into a random dir. */
void
move_gcov_turd
(
const
char
*
dir
,
struct
ccan_file
*
file
,
const
char
*
extension
);
#endif
/* CCANLINT_BUILD_COVERAGE_H */
tools/ccanlint/tests/run-coverage.c
View file @
98253905
...
...
@@ -14,7 +14,6 @@
#include <err.h>
#include <string.h>
#include <ctype.h>
#include "build-coverage.h"
struct
coverage_result
{
float
uncovered
;
...
...
@@ -118,7 +117,6 @@ static void *do_run_coverage_tests(struct manifest *m,
return
res
;
}
covcmd
=
talloc_asprintf_append
(
covcmd
,
" %s"
,
i
->
name
);
move_gcov_turd
(
olddir
,
i
,
".gcda"
);
}
list_for_each
(
&
m
->
api_tests
,
i
,
list
)
{
...
...
@@ -129,7 +127,6 @@ static void *do_run_coverage_tests(struct manifest *m,
return
res
;
}
covcmd
=
talloc_asprintf_append
(
covcmd
,
" %s"
,
i
->
name
);
move_gcov_turd
(
olddir
,
i
,
".gcda"
);
}
/* Now run gcov: we want output even if it succeeds. */
...
...
tools/tools.c
View file @
98253905
...
...
@@ -172,7 +172,7 @@ static int unlink_all(char *dir)
return
0
;
}
char
*
temp_
file
(
const
void
*
ctx
,
const
char
*
extension
)
char
*
temp_
dir
(
const
void
*
ctx
)
{
/* For first call, create dir. */
while
(
!
tmpdir
)
{
...
...
@@ -192,8 +192,13 @@ char *temp_file(const void *ctx, const char *extension)
}
talloc_set_destructor
(
tmpdir
,
unlink_all
);
}
return
tmpdir
;
}
return
talloc_asprintf
(
ctx
,
"%s/%u%s"
,
tmpdir
,
count
++
,
extension
);
char
*
temp_file
(
const
void
*
ctx
,
const
char
*
extension
)
{
return
talloc_asprintf
(
ctx
,
"%s/%u%s"
,
temp_dir
(
ctx
),
count
++
,
extension
);
}
char
*
maybe_temp_file
(
const
void
*
ctx
,
const
char
*
extension
,
bool
keep
,
...
...
tools/tools.h
View file @
98253905
...
...
@@ -32,6 +32,7 @@ char *talloc_getcwd(const void *ctx);
char
*
run_command
(
const
void
*
ctx
,
unsigned
int
*
time_ms
,
const
char
*
fmt
,
...);
char
*
run_with_timeout
(
const
void
*
ctx
,
const
char
*
cmd
,
bool
*
ok
,
unsigned
*
timeout_ms
);
char
*
temp_dir
(
const
void
*
ctx
);
char
*
temp_file
(
const
void
*
ctx
,
const
char
*
extension
);
bool
move_file
(
const
char
*
oldname
,
const
char
*
newname
);
...
...
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