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 list with garbage output
160 ####################################################################
170 asdfaereafsdcv 12333456434&*89**(())(^%$*
171 @#$%^&*()@#$%^&*()0834523094578kj;djkfs
172 a;sdf094v5u dsafj;sd9
176 ####################################################################
177 # Scenario: Test lttng list <name> with sample outputs
178 ####################################################################
188 Tracing session mysession: [active]
189 Trace path: /home/user/lttng-traces/mysession-20120129-084256
191 === Domain: Kernel ===
195 - channel0: [enabled]
199 subbufers size: 262144
200 number of subbufers: 4
201 switch timer interval: 0
202 read timer interval: 200
206 block_rq_remap (loglevel: TRACE_EMERG (0)) (type: tracepoint) [enabled]
207 block_bio_remap (loglevel: TRACE_EMERG (0)) (type: tracepoint) [disabled]
209 - channel1: [disabled]
213 subbufers size: 524288
214 number of subbufers: 4
215 switch timer interval: 100
216 read timer interval: 400
222 === Domain: UST global ===
226 - mychannel1: [disabled]
231 number of subbufers: 8
232 switch timer interval: 200
233 read timer interval: 100
239 - channel0: [enabled]
244 number of subbufers: 4
245 switch timer interval: 0
246 read timer interval: 200
250 ust_tests_hello:tptest_sighandler (loglevel: TRACE_DEBUG_LINE (13)) (type: tracepoint) [disabled]
251 * (type: tracepoint) [enabled]
255 lttng list mysession1
261 Tracing session mysession1: [inactive]
262 Trace path: /home/user/lttng-traces/mysession1-20120203-133225
268 ####################################################################
269 # Scenario: Test "lttng list -k" with sample output
270 ####################################################################
282 sched_kthread_stop (loglevel: TRACE_EMERG (0)) (type: tracepoint)
283 sched_kthread_stop_ret (loglevel: TRACE_EMERG (0)) (type: tracepoint)
284 sched_wakeup_new (loglevel: TRACE_EMERG (0)) (type: tracepoint)
289 ####################################################################
290 # Scenario: Test "lttng list -k" with no kernel and no session daemon
291 ####################################################################
301 Spawning session daemon
302 Error: Unable to list kernel events
306 ####################################################################
307 # Scenario: Test "lttng list -k" with no kernel and with session daemon
308 ####################################################################
318 Error: Unable to list kernel events
322 ####################################################################
323 # Scenario: Test "lttng list -u" with sample output
324 ####################################################################
337 PID: 9379 - Name: /home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello
338 ust_tests_hello:tptest_sighandler (loglevel: TRACE_DEBUG_MODULE (10)) (type: tracepoint)
339 ust_tests_hello:tptest (loglevel: TRACE_INFO (6)) (type: tracepoint)
341 PID: 4852 - Name: /home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello
342 ust_tests_hello:tptest_sighandler (loglevel: TRACE_WARNING (4)) (type: tracepoint)
343 ust_tests_hello:tptest (loglevel: TRACE_DEBUG_FUNCTION (12)) (type: tracepoint)
348 ####################################################################
349 # Scenario: Test "lttng list -u" with no UST provider available
350 ####################################################################
367 ####################################################################
368 # Scenario: Test "lttng list -u -f" with sample output (version 2.1.0)
369 ####################################################################
382 PID: 9379 - Name: /home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello
383 ust_tests_hello:tptest_sighandler (loglevel: TRACE_DEBUG_MODULE (10)) (type: tracepoint)
384 ust_tests_hello:tptest (loglevel: TRACE_INFO (6)) (type: tracepoint)
385 field: doublefield (float)
386 field: floatfield (float)
387 field: stringfield (string)
389 PID: 4852 - Name: /home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello
390 ust_tests_hello:tptest_sighandler (loglevel: TRACE_WARNING (4)) (type: tracepoint)
391 ust_tests_hello:tptest (loglevel: TRACE_DEBUG_FUNCTION (12)) (type: tracepoint)
392 field: doublefield (float)
393 field: floatfield (float)
394 field: stringfield (string)
400 ####################################################################
401 # Scenario: Test "lttng create <session>
402 ####################################################################
406 lttng create mysession2
412 Session mysession2 created.
413 Traces will be written in /home/user/lttng-traces/mysession2-20120209-095418
417 ####################################################################
418 # Scenario: Test "lttng create <session>
419 ####################################################################
421 CreateSessionWithPrompt
423 lttng create mysession2
429 Prompt> Session mysession2 created.
430 Traces will be written in /home/user/lttng-traces/mysession2-20120209-095418
434 ####################################################################
435 # Scenario: Test "lttng create <session> with different variants
437 ####################################################################
439 CreateSessionVariants
441 lttng create alreadyExist
447 Error: Session name already exist
451 lttng create "session with spaces"
457 Session session with spaces created.
458 Traces will be written in /home/user/lttng-traces/session with spaces-20120209-095418
462 lttng create wrongName
468 Session auto created.
469 Traces will be written in /home/user/lttng-traces/auto-20120209-095418
473 lttng create wrongPath -o /home/user/hallo
479 Session wrongPath created.
480 Traces will be written in /home/user/lttng-traces/wrongPath-20120209-095418
484 lttng create pathWithSpaces -o "/home/user/hallo user/here"
490 Session pathWithSpaces created.
491 Traces will be written in /home/user/hallo user/here/pathWithSpaces-20120209-095418
495 ####################################################################
496 # Scenario: Test "lttng destroy <session>
497 ####################################################################
502 lttng destroy mysession2
508 Session mysession2 destroyed.
512 ####################################################################
513 # Scenario: Test "lttng enable-channel ..." with different inputs
514 ####################################################################
519 lttng enable-channel mychannel0,mychannel1 -k -s mysession2 --overwrite --subbuf-size 16384 --num-subbuf 2 --switch-timer 200 --read-timer 100
525 Kernel channel mychannel0 enabled for session mysession2
526 Kernel channel mychannel1 enabled for session mysession2
530 lttng enable-channel ustChannel -u -s mysession2 --overwrite --subbuf-size 32768 --num-subbuf 1 --switch-timer 100 --read-timer 200
536 UST channel channel0 enabled for session mysession2
540 lttng enable-channel mychannel0,mychannel1 -k -s mysession2
546 Kernel channel mychannel0 enabled for session mysession2
547 Kernel channel mychannel1 enabled for session mysession2
551 lttng enable-channel ustChannel -u -s mysession2
557 UST channel mychannel0 enabled for session mysession2
561 lttng disable-channel mychannel0,mychannel1 -k -s mysession2
567 Kernel channel mychannel0 disabled for session mysession2
568 Kernel channel mychannel1 disabled for session mysession2
572 lttng disable-channel ustChannel -u -s mysession2
578 UST channel mychannel0 enabled for session mysession2
583 ####################################################################
584 # Scenario: Test "lttng enable-events ..." with different inputs
585 ####################################################################
589 # Tracepoint test cases
592 lttng enable-event block_rq_remap,block_bio_remap,softirq_entry -k -s mysession2 --tracepoint
598 kernel event block_rq_remap created in channel channel0
599 kernel event block_bio_remap created in channel channel0
600 kernel event softirq_entry created in channel channel0
604 lttng enable-event -a -k -s mysession2 -c mychannel --tracepoint
610 All kernel tracepoints are enabled in channel channel0
614 lttng enable-event ust_tests_hello:tptest_sighandler -u -s mysession2 -c mychannel --tracepoint
620 UST event ust_tests_hello:tptest_sighandler created in channel mychannel
624 lttng enable-event ust_tests_hello:tptest_sighandler -u -s mysession2 -c mychannel --tracepoint --filter 'intfield==10'
630 UST event ust_tests_hello:tptest_sighandler created in channel mychannel
634 lttng enable-event -a -u -s mysession2 -c mychannel --tracepoint
640 All UST tracepoints are enabled in channel mychannel
646 lttng enable-event -a -k -s mysession2 --syscall
652 All kernel system calls are enabled in channel channel0
656 lttng enable-event -a -k -s mysession2 -c mychannel --syscall
662 All kernel system calls are enabled in channel mychannel
665 # dynamic probe/function probe test cases
668 lttng enable-event myevent0 -k -s mysession2 --function 0xc0101340
674 kernel event myevent0 created in channel mychannel
678 lttng enable-event myevent1 -k -s mysession2 -c mychannel --probe init_post
684 kernel event myevent1 created in channel mychannel
687 # log level test cases
690 lttng enable-event myevent4 -u -s mysession2 --loglevel-only TRACE_DEBUG
696 UST event myevent4 created in channel channel0
700 lttng enable-event myevent5 -u -s mysession2 -c mychannel --loglevel TRACE_DEBUG_FUNCTION
706 UST event myevent5 created in channel mychannel
711 ####################################################################
712 # Scenario: Test "lttng add-context -h" and lttng add-context ..." with different inputs
713 ####################################################################
725 usage: lttng add-context -t TYPE
727 If no channel and no event is given (-c/-e), the context
728 will be added to all events and all channels.
729 Otherwise the context will be added only to the channel (-c)
730 and/or event (-e) indicated.
731 Exactly one domain (-k/--kernel or -u/--userspace) must be specified.
734 -h, --help Show this help
735 --list-options Simple listing of options
736 -s, --session NAME Apply to session name
737 -c, --channel NAME Apply to channel
738 -e, --event NAME Apply to event
739 -k, --kernel Apply to the kernel tracer
740 -u, --userspace Apply to the user-space tracer
741 -t, --type TYPE Context type. You can repeat that option on
742 the command line to specify multiple contexts at once.
743 (--kernel preempts --userspace)
744 TYPE can be one of the strings below:
745 pid, procname, prio, nice, vpid, tid, pthread_id,
746 vtid, ppid, vppid, perf:cpu-cycles, perf:cycles
748 This command will add the context information 'prio' and two perf
749 counters (hardware branch misses and cache misses), to all events
750 in the trace data output:
751 # lttng add-context -k -t prio -t perf:branch-misses -t perf:cache-misses
756 lttng add-context -s mysession2 -c mychannel -e ust_tests_hello:tptest_sighandler -u -t prio -t pid
762 UST context prio added to event ust_tests_hello:tptest_sighandle channel mychannel
763 UST context pid added to event sched_kthread_stop_ret channel mychannel
777 usage: lttng add-context -t TYPE
779 If no channel and no event is given (-c/-e), the context
780 will be added to all events and all channels.
781 Otherwise the context will be added only to the channel (-c)
782 and/or event (-e) indicated.
783 Exactly one domain (-k/--kernel or -u/--userspace) must be specified.
786 -h, --help Show this help
787 --list-options Simple listing of options
788 -s, --session NAME Apply to session name
789 -c, --channel NAME Apply to channel
790 -e, --event NAME Apply to event
791 -k, --kernel Apply to the kernel tracer
792 -u, --userspace Apply to the user-space tracer
793 -t, --type TYPE Context type. You can repeat that option on
794 the command line to specify multiple contexts at once.
795 (--kernel preempts --userspace)
796 TYPE can be one of the strings below:
797 pid, procname, prio, nice, vpid, tid, pthread_id,
798 vtid, ppid, vppid, perf:cpu-cycles, perf:cycles
800 This command will add the context information 'prio' and two perf
801 counters (hardware branch misses and cache misses), to all events
802 in the trace data output:
803 # lttng add-context -k -t prio -t perf:branch-misses -t perf:cache-misses
808 lttng add-context -s mysession2 -c mychannel -e ust_tests_hello:tptest_sighandler -u -t prio -t pid
814 UST context prio added to event ust_tests_hello:tptest_sighandle channel mychannel
815 UST context pid added to event sched_kthread_stop_ret channel mychannel
823 lttng calibrate -k --function
829 Kernel calibration done
833 lttng calibrate -u --function
839 Kernel calibration done