perf tests: Add tests to callgraph and time parse
authorKan Liang <kan.liang@intel.com>
Tue, 11 Aug 2015 10:30:50 +0000 (06:30 -0400)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 12 Aug 2015 16:20:29 +0000 (13:20 -0300)
Add tests in tests/parse-events.c to check call-graph and time option.

Signed-off-by: Kan Liang <kan.liang@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/1439289050-40510-4-git-send-email-kan.liang@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/tests/parse-events.c

index f65bb89e109ede0031d1b78dc5f3fde062bdd959..9b6b2b6324a1d479835af199e4f02e129c949075 100644 (file)
@@ -479,6 +479,39 @@ static int test__checkevent_pmu_name(struct perf_evlist *evlist)
        return 0;
 }
 
+static int test__checkevent_pmu_partial_time_callgraph(struct perf_evlist *evlist)
+{
+       struct perf_evsel *evsel = perf_evlist__first(evlist);
+
+       /* cpu/config=1,call-graph=fp,time,period=100000/ */
+       TEST_ASSERT_VAL("wrong number of entries", 2 == evlist->nr_entries);
+       TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW == evsel->attr.type);
+       TEST_ASSERT_VAL("wrong config",  1 == evsel->attr.config);
+       /*
+        * The period, time and callgraph value gets configured
+        * within perf_evlist__config,
+        * while this test executes only parse events method.
+        */
+       TEST_ASSERT_VAL("wrong period",     0 == evsel->attr.sample_period);
+       TEST_ASSERT_VAL("wrong callgraph",  !(PERF_SAMPLE_CALLCHAIN & evsel->attr.sample_type));
+       TEST_ASSERT_VAL("wrong time",  !(PERF_SAMPLE_TIME & evsel->attr.sample_type));
+
+       /* cpu/config=2,call-graph=no,time=0,period=2000/ */
+       evsel = perf_evsel__next(evsel);
+       TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW == evsel->attr.type);
+       TEST_ASSERT_VAL("wrong config",  2 == evsel->attr.config);
+       /*
+        * The period, time and callgraph value gets configured
+        * within perf_evlist__config,
+        * while this test executes only parse events method.
+        */
+       TEST_ASSERT_VAL("wrong period",     0 == evsel->attr.sample_period);
+       TEST_ASSERT_VAL("wrong callgraph",  !(PERF_SAMPLE_CALLCHAIN & evsel->attr.sample_type));
+       TEST_ASSERT_VAL("wrong time",  !(PERF_SAMPLE_TIME & evsel->attr.sample_type));
+
+       return 0;
+}
+
 static int test__checkevent_pmu_events(struct perf_evlist *evlist)
 {
        struct perf_evsel *evsel = perf_evlist__first(evlist);
@@ -1555,6 +1588,11 @@ static struct evlist_test test__events_pmu[] = {
                .check = test__checkevent_pmu_name,
                .id    = 1,
        },
+       {
+               .name  = "cpu/config=1,call-graph=fp,time,period=100000/,cpu/config=2,call-graph=no,time=0,period=2000/",
+               .check = test__checkevent_pmu_partial_time_callgraph,
+               .id    = 2,
+       },
 };
 
 struct terms_test {