Em Sun, Jul 21, 2019 at 01:25:00PM +0200, Jiri Olsa escreveu:
> Add simple perf_cpu_map tests.

Its not honouring O= and requires that we first build libperf in the
source tree, please fix this in a followup patch:

[acme@quaco perf]$ make -C tools/perf/lib clean
make: Entering directory '/home/acme/git/perf/tools/perf/lib'
  CLEAN    libperf
  CLEAN    tests
make: Leaving directory '/home/acme/git/perf/tools/perf/lib'
[acme@quaco perf]$ ls -la tools/perf/lib/tests/
total 16
drwxrwxr-x. 2 acme acme 4096 Jul 25 07:35 .
drwxrwxr-x. 4 acme acme 4096 Jul 25 07:35 ..
-rw-rw-r--. 1 acme acme  857 Jul 25 07:34 Makefile
-rw-rw-r--. 1 acme acme  328 Jul 25 07:34 test-cpumap.c
[acme@quaco perf]$ make O=/tmp/build/perf -C tools/perf/lib/ tests
make: Entering directory '/home/acme/git/perf/tools/perf/lib'
  LINK     test-cpumap-a
gcc: error: ../libperf.a: No such file or directory
make[1]: *** [Makefile:22: test-cpumap-a] Error 1
make: *** [Makefile:115: tests] Error 2
make: Leaving directory '/home/acme/git/perf/tools/perf/lib'
[acme@quaco perf]$

libperf itself is honouring O=:

[acme@quaco perf]$ make O=/tmp/build/perf -C tools/perf/lib
make: Entering directory '/home/acme/git/perf/tools/perf/lib'
  LINK     /tmp/build/perf/libperf.so.0.0.1
  GEN      /tmp/build/perf/libperf.pc
make: Leaving directory '/home/acme/git/perf/tools/perf/lib'
[acme@quaco perf]$ make O=/tmp/build/perf -C tools/perf/lib  tests
make: Entering directory '/home/acme/git/perf/tools/perf/lib'
  LINK     test-cpumap-a
gcc: error: ../libperf.a: No such file or directory
make[1]: *** [Makefile:22: test-cpumap-a] Error 1
make: *** [Makefile:115: tests] Error 2
make: Leaving directory '/home/acme/git/perf/tools/perf/lib'
[acme@quaco perf]$

Its only when I stop using O= that it works:

[acme@quaco perf]$ make -C tools/perf/lib  
make: Entering directory '/home/acme/git/perf/tools/perf/lib'
  HOSTCC   fixdep.o
  HOSTLD   fixdep-in.o
  LINK     fixdep
  CC       core.o
  CC       cpumap.o
  CC       threadmap.o
  CC       evsel.o
  CC       evlist.o
  CC       zalloc.o
  CC       xyarray.o
  CC       lib.o
  LD       libperf-in.o
  AR       libperf.a
  LINK     libperf.so.0.0.1
  GEN      libperf.pc
make: Leaving directory '/home/acme/git/perf/tools/perf/lib'
[acme@quaco perf]$ make O=/tmp/build/perf -C tools/perf/lib  tests
make: Entering directory '/home/acme/git/perf/tools/perf/lib'
  LINK     test-cpumap-a
  LINK     test-cpumap-so
running static:
- running test-cpumap.c...OK
running dynamic:
- running test-cpumap.c...OK
make: Leaving directory '/home/acme/git/perf/tools/perf/lib'
[acme@quaco perf]$

It is already useful albeit this limitation, so I'm applying.

- Arnaldo
 
> Link: http://lkml.kernel.org/n/[email protected]
> Signed-off-by: Jiri Olsa <[email protected]>
> ---
>  tools/perf/lib/tests/Makefile      |  2 +-
>  tools/perf/lib/tests/test-cpumap.c | 21 +++++++++++++++++++++
>  2 files changed, 22 insertions(+), 1 deletion(-)
>  create mode 100644 tools/perf/lib/tests/test-cpumap.c
> 
> diff --git a/tools/perf/lib/tests/Makefile b/tools/perf/lib/tests/Makefile
> index de951ae38dea..b72c8c47df61 100644
> --- a/tools/perf/lib/tests/Makefile
> +++ b/tools/perf/lib/tests/Makefile
> @@ -1,6 +1,6 @@
>  # SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
>  
> -TESTS =
> +TESTS = test-cpumap
>  
>  TESTS_SO := $(addsuffix -so,$(TESTS))
>  TESTS_A  := $(addsuffix -a,$(TESTS))
> diff --git a/tools/perf/lib/tests/test-cpumap.c 
> b/tools/perf/lib/tests/test-cpumap.c
> new file mode 100644
> index 000000000000..76a43cfb83a1
> --- /dev/null
> +++ b/tools/perf/lib/tests/test-cpumap.c
> @@ -0,0 +1,21 @@
> +// SPDX-License-Identifier: GPL-2.0
> +#include <perf/cpumap.h>
> +#include <internal/tests.h>
> +
> +int main(int argc, char **argv)
> +{
> +     struct perf_cpu_map *cpus;
> +
> +     __T_START;
> +
> +     cpus = perf_cpu_map__dummy_new();
> +     if (!cpus)
> +             return -1;
> +
> +     perf_cpu_map__get(cpus);
> +     perf_cpu_map__put(cpus);
> +     perf_cpu_map__put(cpus);
> +
> +     __T_OK;
> +     return 0;
> +}
> -- 
> 2.21.0

-- 

- Arnaldo

Reply via email to