1 ####################################################################
2 # Copyright (c) 2012 Ericsson
4 # All rights reserved. This program and the accompanying materials are
5 # made available under the terms of the Eclipse Public License v1.0 which
6 # accompanies this distribution, and is available at
7 # http://www.eclipse.org/legal/epl-v10.html
10 # Bernd Hufmann - Initial API and implementation
11 ####################################################################
12 ####################################################################
13 # Scenario: Test lttng not installed
14 ####################################################################
28 ####################################################################
29 # Scenario: Test lttng version
30 ####################################################################
40 lttng version 2.1.0 - Basse Messe
41 Web site: http://lttng.org/
43 lttng is free software and under the GPL license and part LGPL
47 ####################################################################
48 # Scenario: Test lttng version
50 ####################################################################
52 LttngVersionWithPrompt
60 Prompt> lttng version 2.0.0 - Annedd'ale
61 Web site: http://lttng.org/
63 lttng is free software and under the GPL license and part LGPL
67 ####################################################################
68 # Scenario: Test lttng version (unsupported version)
69 ####################################################################
71 LttngUnsupportedVersion
79 lttng version 200.0.0 - Annedd'ale
80 Web site: http://lttng.org/
82 lttng is free software and under the GPL license and part LGPL
87 ####################################################################
88 # Scenario: Test lttng version (noversion)
89 ####################################################################
99 Web site: http://lttng.org/
101 lttng is free software and under the GPL license and part LGPL
105 ####################################################################
106 # Scenario: Test no sessions available
107 ####################################################################
117 Currently no available tracing session
121 ####################################################################
122 # Scenario: Test get sessions
123 ####################################################################
133 Available tracing sessions:
134 1) mysession1 (/home/user/lttng-traces/mysession1-20120123-083928) [inactive]
135 2) mysession (/home/user/lttng-traces/mysession-20120123-083318) [inactive]
137 Use lttng list <session_name> for more details
141 ####################################################################
142 # Scenario: Test lttng list <name> where session doesn't exist
143 ####################################################################
145 GetSessionNameNotExist
153 Session test not found
154 Error: Session name not found
158 ####################################################################
159 # Scenario: Test lttng -vvv list <name> where session doesn't exist
160 ####################################################################
162 GetSessionNameNotExistVerbose
170 DEBUG2: Session name: test [in cmd_list() at commands/list.c:618]
171 DEBUG1: Session count 1 [in list_sessions() at commands/list.c:485]
172 Error: Session 'test' not found
174 DEBUG1: Clean exit [in clean_exit() at lttng.c:165]
178 ####################################################################
179 # Scenario: Test lttng list with garbage output
180 ####################################################################
190 asdfaereafsdcv 12333456434&*89**(())(^%$*
191 @#$%^&*()@#$%^&*()0834523094578kj;djkfs
192 a;sdf094v5u dsafj;sd9
196 ####################################################################
197 # Scenario: Test lttng list <name> with sample outputs
198 ####################################################################
208 Tracing session mysession: [active]
209 Trace path: /home/user/lttng-traces/mysession-20120129-084256
211 === Domain: Kernel ===
215 - channel0: [enabled]
219 subbufers size: 262144
220 number of subbufers: 4
221 switch timer interval: 0
222 read timer interval: 200
226 block_rq_remap (loglevel: TRACE_EMERG (0)) (type: tracepoint) [enabled]
227 block_bio_remap (loglevel: TRACE_EMERG (0)) (type: tracepoint) [disabled]
229 - channel1: [disabled]
233 subbufers size: 524288
234 number of subbufers: 4
235 switch timer interval: 100
236 read timer interval: 400
242 === Domain: UST global ===
246 - mychannel1: [disabled]
251 number of subbufers: 8
252 switch timer interval: 200
253 read timer interval: 100
259 - channel0: [enabled]
264 number of subbufers: 4
265 switch timer interval: 0
266 read timer interval: 200
270 ust_tests_hello:tptest_sighandler (loglevel: TRACE_DEBUG_LINE (13)) (type: tracepoint) [disabled]
271 * (type: tracepoint) [enabled]
275 lttng list mysession1
281 Tracing session mysession1: [inactive]
282 Trace path: /home/user/lttng-traces/mysession1-20120203-133225
288 ####################################################################
289 # Scenario: Test "lttng list -k" with sample output
290 ####################################################################
302 sched_kthread_stop (loglevel: TRACE_EMERG (0)) (type: tracepoint)
303 sched_kthread_stop_ret (loglevel: TRACE_EMERG (0)) (type: tracepoint)
304 sched_wakeup_new (loglevel: TRACE_EMERG (0)) (type: tracepoint)
309 ####################################################################
310 # Scenario: Test "lttng list -k" with no kernel and no session daemon
311 ####################################################################
321 Spawning session daemon
322 Error: Unable to list kernel events
326 ####################################################################
327 # Scenario: Test "lttng list -k" with no kernel and with session daemon
328 ####################################################################
338 Error: Unable to list kernel events
342 ####################################################################
343 # Scenario: Test "lttng list -k" with no kernel, with session daemon and verbose
344 ####################################################################
346 ListWithNoKernelVerbose
354 DEBUG2: Session name: (null) [in cmd_list() at commands/list.c:618]
355 DEBUG1: Getting kernel tracing events [in list_kernel_events() at commands/list.c:309]
356 Error: Unable to list kernel events
357 DEBUG1: Clean exit [in clean_exit() at lttng.c:165]
361 ####################################################################
362 # Scenario: Test "lttng list -u" with sample output
363 ####################################################################
376 PID: 9379 - Name: /home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello
377 ust_tests_hello:tptest_sighandler (loglevel: TRACE_DEBUG_MODULE (10)) (type: tracepoint)
378 ust_tests_hello:tptest (loglevel: TRACE_INFO (6)) (type: tracepoint)
380 PID: 4852 - Name: /home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello
381 ust_tests_hello:tptest_sighandler (loglevel: TRACE_WARNING (4)) (type: tracepoint)
382 ust_tests_hello:tptest (loglevel: TRACE_DEBUG_FUNCTION (12)) (type: tracepoint)
387 ####################################################################
388 # Scenario: Test "lttng list -u" with no UST provider available
389 ####################################################################
406 ####################################################################
407 # Scenario: Test "lttng list -u" with no UST available (LTTng 2.0.x)
408 ####################################################################
425 ####################################################################
426 # Scenario: Test "lttng list -u" with no UST available and no session daemon
427 ####################################################################
437 Spawning a session daemon
438 Error: Unable to list UST events: Listing UST events failed
443 ####################################################################
444 # Scenario: Test "lttng list -k" with no kernel and with session daemon
445 ####################################################################
455 Error: Unable to list UST events: Listing UST events failed
460 ####################################################################
461 # Scenario: Test "lttng list -u" with no kernel, with session daemon and verbose
462 ####################################################################
466 lttng -vvv list -u -f
472 DEBUG2: Session name: (null) [in cmd_list() at commands/list.c:618]
473 DEBUG1: Getting kernel tracing events [in list_kernel_events() at commands/list.c:309]
474 Spawning a session daemon
475 Error: Unable to list UST events: Listing UST events failed
477 DEBUG1: Clean exit [in clean_exit() at lttng.c:165]
482 ####################################################################
483 # Scenario: Test "lttng list -u -f" with sample output (version 2.1.0)
484 ####################################################################
497 PID: 9379 - Name: /home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello
498 ust_tests_hello:tptest_sighandler (loglevel: TRACE_DEBUG_MODULE (10)) (type: tracepoint)
499 ust_tests_hello:tptest (loglevel: TRACE_INFO (6)) (type: tracepoint)
500 field: doublefield (float)
501 field: floatfield (float)
502 field: stringfield (string)
504 PID: 4852 - Name: /home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello
505 ust_tests_hello:tptest_sighandler (loglevel: TRACE_WARNING (4)) (type: tracepoint)
506 ust_tests_hello:tptest (loglevel: TRACE_DEBUG_FUNCTION (12)) (type: tracepoint)
507 field: doublefield (float)
508 field: floatfield (float)
509 field: stringfield (string)
515 ####################################################################
516 # Scenario: Test "lttng create <session>
517 ####################################################################
521 lttng create mysession2
527 Session mysession2 created.
528 Traces will be written in /home/user/lttng-traces/mysession2-20120209-095418
532 ####################################################################
533 # Scenario: Test "lttng create <session>
534 ####################################################################
536 CreateSessionWithPrompt
538 lttng create mysession2
544 Prompt> Session mysession2 created.
545 Traces will be written in /home/user/lttng-traces/mysession2-20120209-095418
549 ####################################################################
550 # Scenario: Test "lttng create <session> with different variants
552 ####################################################################
554 CreateSessionVariants
556 lttng create alreadyExist
562 Error: Session name already exist
566 lttng create "session with spaces"
572 Session session with spaces created.
573 Traces will be written in /home/user/lttng-traces/session with spaces-20120209-095418
577 lttng create wrongName
583 Session auto created.
584 Traces will be written in /home/user/lttng-traces/auto-20120209-095418
588 lttng create wrongPath -o /home/user/hallo
594 Session wrongPath created.
595 Traces will be written in /home/user/lttng-traces/wrongPath-20120209-095418
599 lttng create pathWithSpaces -o "/home/user/hallo user/here"
605 Session pathWithSpaces created.
606 Traces will be written in /home/user/hallo user/here/pathWithSpaces-20120209-095418
610 ####################################################################
611 # Scenario: Test "lttng destroy <session>
612 ####################################################################
617 lttng destroy mysession2
623 Session mysession2 destroyed.
627 ####################################################################
628 # Scenario: Test "lttng -vvv destroy <session>"
629 ####################################################################
632 DestroySessionVerbose
634 lttng -vvv destroy mysession2
640 DEBUG2: Config file path found: /home/eedbhu [in get_session_name() at utils.c:98]
641 DEBUG1: Session name found: mysession2 [in get_session_name() at utils.c:99]
642 Session mysession2 destroyed at /home/eedbhu
647 ####################################################################
648 # Scenario: Test "lttng enable-channel ..." with different inputs
649 ####################################################################
654 lttng enable-channel mychannel0,mychannel1 -k -s mysession2 --overwrite --subbuf-size 16384 --num-subbuf 2 --switch-timer 200 --read-timer 100 -C 0 -W 10
660 Kernel channel mychannel0 enabled for session mysession2
661 Kernel channel mychannel1 enabled for session mysession2
665 lttng enable-channel mychannel0,mychannel1 -k -s mysession2 --overwrite --subbuf-size 16384 --num-subbuf 2 --switch-timer 200 --read-timer 100
671 Kernel channel mychannel0 enabled for session mysession2
672 Kernel channel mychannel1 enabled for session mysession2
676 lttng enable-channel ustChannel -u -s mysession2 --overwrite --subbuf-size 32768 --num-subbuf 1 --switch-timer 100 --read-timer 200 -C 0 -W 20
682 UST channel channel0 enabled for session mysession2
686 lttng enable-channel ustChannel -u -s mysession2 --overwrite --subbuf-size 32768 --num-subbuf 1 --switch-timer 100 --read-timer 200
692 UST channel channel0 enabled for session mysession2
696 lttng enable-channel ustChannel -u -s mysession2 --overwrite --subbuf-size 32768 --num-subbuf 1 --switch-timer 100 --read-timer 200 --buffers-uid -C 0 -W 20
702 UST channel channel0 enabled for session mysession2
706 lttng enable-channel ustChannel -u -s mysession2 --overwrite --buffers-pid
712 UST channel ustChannel enabled for session mysession2
716 lttng enable-channel ustChannel -u -s mysession2 --overwrite --subbuf-size 32768 --num-subbuf 1 --switch-timer 100 --read-timer 200 --buffers-uid
722 UST channel channel0 enabled for session mysession2
727 lttng enable-channel mychannel0,mychannel1 -k -s mysession2
733 Kernel channel mychannel0 enabled for session mysession2
734 Kernel channel mychannel1 enabled for session mysession2
738 lttng enable-channel ustChannel -u -s mysession2
744 UST channel mychannel0 enabled for session mysession2
748 lttng disable-channel mychannel0,mychannel1 -k -s mysession2
754 Kernel channel mychannel0 disabled for session mysession2
755 Kernel channel mychannel1 disabled for session mysession2
759 lttng disable-channel ustChannel -u -s mysession2
765 UST channel mychannel0 enabled for session mysession2
770 ####################################################################
771 # Scenario: Test "lttng enable-events ..." with different inputs
772 ####################################################################
776 # Tracepoint test cases
779 lttng enable-event block_rq_remap,block_bio_remap,softirq_entry -k -s mysession2 --tracepoint
785 kernel event block_rq_remap created in channel channel0
786 kernel event block_bio_remap created in channel channel0
787 kernel event softirq_entry created in channel channel0
791 lttng enable-event -a -k -s mysession2 -c mychannel --tracepoint
797 All kernel tracepoints are enabled in channel channel0
801 lttng enable-event ust_tests_hello:tptest_sighandler -u -s mysession2 -c mychannel --tracepoint
807 UST event ust_tests_hello:tptest_sighandler created in channel mychannel
811 lttng enable-event ust_tests_hello:tptest_sighandler -u -s mysession2 -c mychannel --tracepoint --filter 'intfield==10'
817 UST event ust_tests_hello:tptest_sighandler created in channel mychannel
821 lttng enable-event -a -u -s mysession2 -c mychannel --tracepoint
827 All UST tracepoints are enabled in channel mychannel
833 lttng enable-event -a -k -s mysession2 --syscall
839 All kernel system calls are enabled in channel channel0
843 lttng enable-event -a -k -s mysession2 -c mychannel --syscall
849 All kernel system calls are enabled in channel mychannel
852 # dynamic probe/function probe test cases
855 lttng enable-event myevent0 -k -s mysession2 --function 0xc0101340
861 kernel event myevent0 created in channel mychannel
865 lttng enable-event myevent1 -k -s mysession2 -c mychannel --probe init_post
871 kernel event myevent1 created in channel mychannel
874 # log level test cases
877 lttng enable-event myevent4 -u -s mysession2 --loglevel-only TRACE_DEBUG
883 UST event myevent4 created in channel channel0
887 lttng enable-event myevent5 -u -s mysession2 -c mychannel --loglevel TRACE_DEBUG_FUNCTION
893 UST event myevent5 created in channel mychannel
898 ####################################################################
899 # Scenario: Test "lttng add-context -h" and lttng add-context ..." with different inputs
900 ####################################################################
912 usage: lttng add-context -t TYPE
914 If no channel and no event is given (-c/-e), the context
915 will be added to all events and all channels.
916 Otherwise the context will be added only to the channel (-c)
917 and/or event (-e) indicated.
918 Exactly one domain (-k/--kernel or -u/--userspace) must be specified.
921 -h, --help Show this help
922 --list-options Simple listing of options
923 -s, --session NAME Apply to session name
924 -c, --channel NAME Apply to channel
925 -e, --event NAME Apply to event
926 -k, --kernel Apply to the kernel tracer
927 -u, --userspace Apply to the user-space tracer
928 -t, --type TYPE Context type. You can repeat that option on
929 the command line to specify multiple contexts at once.
930 (--kernel preempts --userspace)
931 TYPE can be one of the strings below:
932 pid, procname, prio, nice, vpid, tid, pthread_id,
933 vtid, ppid, vppid, perf:cpu-cycles, perf:cycles
935 This command will add the context information 'prio' and two perf
936 counters (hardware branch misses and cache misses), to all events
937 in the trace data output:
938 # lttng add-context -k -t prio -t perf:branch-misses -t perf:cache-misses
943 lttng add-context -s mysession2 -c mychannel -e ust_tests_hello:tptest_sighandler -u -t prio -t pid
949 UST context prio added to event ust_tests_hello:tptest_sighandle channel mychannel
950 UST context pid added to event sched_kthread_stop_ret channel mychannel
964 usage: lttng add-context -t TYPE
966 If no channel and no event is given (-c/-e), the context
967 will be added to all events and all channels.
968 Otherwise the context will be added only to the channel (-c)
969 and/or event (-e) indicated.
970 Exactly one domain (-k/--kernel or -u/--userspace) must be specified.
973 -h, --help Show this help
974 --list-options Simple listing of options
975 -s, --session NAME Apply to session name
976 -c, --channel NAME Apply to channel
977 -e, --event NAME Apply to event
978 -k, --kernel Apply to the kernel tracer
979 -u, --userspace Apply to the user-space tracer
980 -t, --type TYPE Context type. You can repeat that option on
981 the command line to specify multiple contexts at once.
982 (--kernel preempts --userspace)
983 TYPE can be one of the strings below:
984 pid, procname, prio, nice, vpid, tid, pthread_id,
985 vtid, ppid, vppid, perf:cpu-cycles, perf:cycles
987 This command will add the context information 'prio' and two perf
988 counters (hardware branch misses and cache misses), to all events
989 in the trace data output:
990 # lttng add-context -k -t prio -t perf:branch-misses -t perf:cache-misses
995 lttng add-context -s mysession2 -c mychannel -e ust_tests_hello:tptest_sighandler -u -t prio -t pid
1001 UST context prio added to event ust_tests_hello:tptest_sighandle channel mychannel
1002 UST context pid added to event sched_kthread_stop_ret channel mychannel
1010 lttng calibrate -k --function
1016 Kernel calibration done
1020 lttng calibrate -u --function
1026 Kernel calibration done
1031 ####################################################################
1032 # Scenario: Test "lttng create <session> with LTTng 2.1 options
1033 ####################################################################
1035 CreateSessionLttng2.1
1038 lttng create mysession -U net://172.0.0.1
1044 Session mysession created.
1045 Traces will be written in net://172.0.0.1
1049 lttng create mysession -U file:///tmp
1055 Session mysession created.
1056 Traces will be written in file:///tmp
1060 lttng create mysession -C tcp://172.0.0.1 -D tcp://172.0.0.1:5343
1066 Session mysession created.
1067 Control URL tcp://172.0.0.1 set for session mysession
1068 Data URL tcp://172.0.0.1:5343 set for session mysession
1072 lttng create mysession -U net://172.0.0.1:1234:2345
1078 Session mysession created.
1079 Traces will be written in net://172.0.0.1:1234:2345
1083 lttng destroy mysession
1089 Session mysession destroyed.
1093 lttng -vvv create mysession -U net://172.0.0.1
1099 DEBUG3: URI string: net://172.0.0.1 [in uri_parse() at uri.c:253]
1100 DEBUG2: IP address resolved to 172.0.0.1 [in set_ip_address() at uri.c:132]
1101 DEBUG3: URI dtype: 1, proto: 1, host: 172.0.0.1, subdir: , ctrl: 0, data: 0 [in uri_parse() at uri.c:467]
1102 DEBUG1: LSM cmd type : 8 [in send_session_msg() at lttng-ctl.c:261]
1103 Session mysession created.
1104 Traces will be written in net://172.0.0.1
1105 DEBUG1: Init config session in /home/bernd [in config_init() at conf.c:294]
1110 ####################################################################
1111 # Scenario: Test "lttng -vvv create <session> with LTTng 2.1 options"
1112 ####################################################################
1114 CreateSessionLttngVerbose2.1
1116 lttng -vvv create mysession -U net://172.0.0.1
1122 DEBUG3: URI string: net://172.0.0.1 [in uri_parse() at uri.c:253]
1123 DEBUG2: IP address resolved to 172.0.0.1 [in set_ip_address() at uri.c:132]
1124 DEBUG3: URI dtype: 1, proto: 1, host: 172.0.0.1, subdir: , ctrl: 0, data: 0 [in uri_parse() at uri.c:467]
1125 DEBUG1: LSM cmd type : 8 [in send_session_msg() at lttng-ctl.c:261]
1126 Session mysession created.
1127 Traces will be written in net://172.0.0.1
1128 DEBUG1: Init config session in /home/bernd [in config_init() at conf.c:294]
1132 lttng -vvv destroy mysession
1138 Session mysession destroyed.
1142 ####################################################################
1143 # Scenario: Test "lttng create <session> --snapshot (LTTng 2.3)
1144 ####################################################################
1146 CreateSessionSnapshot
1148 lttng create mysession --snapshot
1154 Session mysession created.
1155 Default snapshot output set to: /home/user/lttng-traces/mysession-20130913-141651
1156 Snapshot mode set. Every channel enabled for that session will be set in overwrite mode and mmap output.
1158 #------------------------------------------------------------------------------
1160 lttng snapshot list-output -s mysession
1166 Snapshot output list for session mysession
1167 [1] snapshot-1: /home/user/lttng-traces/mysession-20130913-141651
1169 #------------------------------------------------------------------------------
1177 1) mysession () [inactive snapshot]
1180 #------------------------------------------------------------------------------
1182 lttng snapshot record -s mysession
1188 Snapshot recorded successfully for session mysession
1190 #------------------------------------------------------------------------------
1192 lttng destroy mysession
1198 Session mysession destroyed.
1202 ####################################################################
1203 # Scenario: Test "lttng create <session> --snapshot -U <URL> (LTTng 2.3)
1204 ####################################################################
1206 CreateSessionStreamedSnapshot
1208 lttng create mysession --snapshot -U net://172.0.0.1
1214 Session mysession created.
1215 Default snapshot output set to: net://172.0.0.1
1216 Snapshot mode set. Every channel enabled for that session will be set in overwrite mode and mmap output.
1218 #------------------------------------------------------------------------------
1220 lttng snapshot list-output -s mysession
1226 Snapshot output list for session mysession
1227 [2] snapshot-2: net4://172.0.0.1:5342/
1229 #------------------------------------------------------------------------------
1237 1) mysession () [inactive snapshot]
1240 #------------------------------------------------------------------------------
1242 lttng snapshot record -s mysession
1248 Snapshot recorded successfully for session mysession
1250 #------------------------------------------------------------------------------
1252 lttng destroy mysession
1258 Session mysession destroyed.
1265 ####################################################################
1266 # Scenario: Test "lttng create <session> --snapshot (LTTng 2.3)
1267 ####################################################################
1269 CreateSessionSnapshotErrors
1271 lttng snapshot list-output -s blabla
1277 Error: Session name not found
1279 #------------------------------------------------------------------------------
1280 #next is not an error case but good to be tested
1288 1) mysession () [active snapshot]
1291 #------------------------------------------------------------------------------
1293 lttng snapshot record -s blabla
1299 Error: Session name not found
1301 #------------------------------------------------------------------------------
1303 lttng snapshot record -s mysession
1309 Error: Session needs to be started once