+ SYSCTL=do_sysctl + test -z '' + BINDIR=/usr/bin ++ /usr/bin/which /usr/local/bin/opcontrol + OPCONTROL=/usr/local/bin/opcontrol ++ /usr/bin/dirname /usr/local/bin/opcontrol + OPDIR=/usr/local/bin + PATH=/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin + check_options_early --start-daemon --active-domains=0 --event=GLOBAL_POWER_EVENTS:10000:1:1:1 --vmlinux=/boot/vmlinux-syms-2.6.16.33-xen --xen=/boot/xen-syms-3.0.4-1 + OPHELP=/usr/local/bin/ophelp + for i in '$@' ++ printf %s --start-daemon ++ awk -F= '{print $1}' + arg=--start-daemon ++ printf %s --start-daemon ++ awk -F= '{print $2}' + val= + case "$arg" in + for i in '$@' ++ printf %s --active-domains=0 ++ awk -F= '{print $1}' + arg=--active-domains ++ printf %s --active-domains=0 ++ awk -F= '{print $2}' + val=0 + case "$arg" in + for i in '$@' ++ printf %s --event=GLOBAL_POWER_EVENTS:10000:1:1:1 ++ awk -F= '{print $1}' + arg=--event ++ printf %s --event=GLOBAL_POWER_EVENTS:10000:1:1:1 ++ awk -F= '{print $2}' + val=GLOBAL_POWER_EVENTS:10000:1:1:1 + case "$arg" in + for i in '$@' ++ printf %s --vmlinux=/boot/vmlinux-syms-2.6.16.33-xen ++ awk -F= '{print $1}' + arg=--vmlinux ++ printf %s --vmlinux=/boot/vmlinux-syms-2.6.16.33-xen ++ awk -F= '{print $2}' + val=/boot/vmlinux-syms-2.6.16.33-xen + case "$arg" in + for i in '$@' ++ printf %s --xen=/boot/xen-syms-3.0.4-1 ++ awk -F= '{print $1}' + arg=--xen ++ printf %s --xen=/boot/xen-syms-3.0.4-1 ++ awk -F= '{print $2}' + val=/boot/xen-syms-3.0.4-1 + case "$arg" in + test -z --start-daemon ++ id -u + test 0 = 0 + load_module + OPROFILE_AVAILABLE=no + load_module_26 + grep oprofilefs /proc/filesystems + test 0 -ne 0 + mkdir /dev/oprofile + grep oprofilefs /etc/mtab + test 0 -ne 0 + KERNEL_SUPPORT=yes + OPROFILE_AVAILABLE=yes + test yes '!=' yes + test yes '!=' yes + check_version + OPROFILE_AVAILABLE=no + grep oprofilefs /etc/mtab + test 0 -eq 0 + KERNEL_SUPPORT=yes + OPROFILE_AVAILABLE=yes + return + do_init + BUF_SIZE=0 + BUF_WATERSHED=0 + CPU_BUF_SIZE=0 + NOTE_SIZE=0 + VMLINUX= + XENIMAGE=none + VERBOSE= + SEPARATE_LIB=0 + SEPARATE_KERNEL=0 + SEPARATE_THREAD=0 + SEPARATE_CPU=0 + CALLGRAPH=0 + OPROFILED=/usr/local/bin/oprofiled + SETUP_DIR=/root/.oprofile + SETUP_FILE=/root/.oprofile/daemonrc + PASSIVE_SETUP_FILE=/root/.oprofile/xendomain.setup + decide_oprofile_device_mount + test yes = yes + MOUNT=/dev/oprofile ++ cat /dev/oprofile/cpu_type + CPUTYPE=i386/p4 ++ ls /dev/oprofile/ ++ grep '^[0-9]\+$' ++ tr '\n' ' ' + OP_COUNTERS='0 1 2 3 4 5 6 7 ' + NR_CHOSEN=0 + do_init_daemon_vars + test -n '' + do_load_setup + test -f /root/.oprofile/daemonrc + . /root/.oprofile/daemonrc ++ SESSION_DIR=/var/lib/oprofile ++ CHOSEN_EVENTS_0=GLOBAL_POWER_EVENTS:10000:1:1:1 ++ NR_CHOSEN=1 ++ SEPARATE_LIB=0 ++ SEPARATE_KERNEL=0 ++ SEPARATE_THREAD=0 ++ SEPARATE_CPU=0 ++ VMLINUX=/boot/vmlinux-syms-2.6.16.33-xen ++ IMAGE_FILTER= ++ CPU_BUF_SIZE=0 ++ CALLGRAPH=0 ++ KERNEL_RANGE=c0100000,c02d2f76 ++ XENIMAGE=/boot/xen-syms-3.0.4-1 ++ XEN_RANGE=ff100000,ff15a50f + test -n '' + test -z /var/lib/oprofile + LOCK_FILE=/var/lib/oprofile/lock + SAMPLES_DIR=/var/lib/oprofile/samples + LOG_FILE=/var/lib/oprofile/samples/oprofiled.log + CURRENT_SAMPLES_DIR=/var/lib/oprofile/samples/current + decide_oprofile_device + test yes = yes + DEVICE_FILE=/dev/oprofile/buffer ++ /usr/local/bin/ophelp --get-default-event + DEFAULT_EVENT=GLOBAL_POWER_EVENTS:100000:1:1:1 + IS_TIMER=0 + IS_PERFMON=0 + test i386/p4 = timer + case "$CPUTYPE" in + vecho 'Parameters used:' + test -n '' + vecho 'SESSION_DIR /var/lib/oprofile' + test -n '' + vecho 'LOCK_FILE /var/lib/oprofile/lock' + test -n '' + vecho 'SAMPLES_DIR /var/lib/oprofile/samples' + test -n '' + vecho 'CURRENT_SAMPLES_DIR /var/lib/oprofile/samples/current' + test -n '' + vecho 'CPUTYPE i386/p4' + test -n '' + test 0 '!=' 0 + vecho 'BUF_SIZE default value' + test -n '' + test 0 '!=' 0 + vecho 'BUF_WATERSHED default value' + test -n '' + test yes = yes + test 0 '!=' 0 + vecho 'CPU_BUF_SIZE default value' + test -n '' + vecho 'SEPARATE_LIB 0' + test -n '' + vecho 'SEPARATE_KERNEL 0' + test -n '' + vecho 'SEPARATE_THREAD 0' + test -n '' + vecho 'SEPARATE_CPU 0' + test -n '' + vecho 'CALLGRAPH 0' + test -n '' + vecho 'VMLINUX /boot/vmlinux-syms-2.6.16.33-xen' + test -n '' + vecho 'KERNEL_RANGE c0100000,c02d2f76' + test -n '' + vecho 'XENIMAGE /boot/xen-syms-3.0.4-1' + test -n '' + vecho 'XEN_RANGE ff100000,ff15a50f' + test -n '' ++ id -u + test 0 '!=' 0 + do_options --start-daemon --active-domains=0 --event=GLOBAL_POWER_EVENTS:10000:1:1:1 --vmlinux=/boot/vmlinux-syms-2.6.16.33-xen --xen=/boot/xen-syms-3.0.4-1 + EXCLUSIVE_ARGC=0 + SETUP=no + NEED_SETUP=no + SEEN_EVENT=0 + '[' 5 -ne 0 ']' ++ printf %s --start-daemon ++ awk -F= '{print $1}' + arg=--start-daemon ++ printf %s --start-daemon ++ awk -F= '{print $2}' + val= + shift + test -z '' + local possibleval=--active-domains=0 + printf %s --active-domains=0 --active-domains=0 + grep '^-' + test 0 '!=' 0 + case "$arg" in + test yes '!=' yes + START_DAEMON=yes ++ expr 0 + 1 + EXCLUSIVE_ARGC=1 + EXCLUSIVE_ARGV=--start-daemon + '[' 4 -ne 0 ']' ++ printf %s --active-domains=0 ++ awk -F= '{print $1}' + arg=--active-domains ++ awk -F= '{print $2}' ++ printf %s --active-domains=0 + val=0 + shift + test -z 0 + case "$arg" in + error_if_empty --active-domains 0 + test -z 0 + ACTIVE_DOMAINS=0 + DO_SETUP=yes + '[' 3 -ne 0 ']' ++ printf %s --event=GLOBAL_POWER_EVENTS:10000:1:1:1 ++ awk -F= '{print $1}' + arg=--event ++ printf %s --event=GLOBAL_POWER_EVENTS:10000:1:1:1 ++ awk -F= '{print $2}' + val=GLOBAL_POWER_EVENTS:10000:1:1:1 + shift + test -z GLOBAL_POWER_EVENTS:10000:1:1:1 + case "$arg" in + error_if_empty --event GLOBAL_POWER_EVENTS:10000:1:1:1 + test -z GLOBAL_POWER_EVENTS:10000:1:1:1 + test 0 = 0 + NR_CHOSEN=0 + SEEN_EVENT=1 + test GLOBAL_POWER_EVENTS:10000:1:1:1 = default + set_event 0 GLOBAL_POWER_EVENTS:10000:1:1:1 + eval CHOSEN_EVENTS_0=GLOBAL_POWER_EVENTS:10000:1:1:1 ++ CHOSEN_EVENTS_0=GLOBAL_POWER_EVENTS:10000:1:1:1 ++ expr 0 + 1 + NR_CHOSEN=1 + DO_SETUP=yes + '[' 2 -ne 0 ']' ++ printf %s --vmlinux=/boot/vmlinux-syms-2.6.16.33-xen ++ awk -F= '{print $1}' + arg=--vmlinux ++ printf %s --vmlinux=/boot/vmlinux-syms-2.6.16.33-xen ++ awk -F= '{print $2}' + val=/boot/vmlinux-syms-2.6.16.33-xen + shift + test -z /boot/vmlinux-syms-2.6.16.33-xen + case "$arg" in + error_if_empty --vmlinux /boot/vmlinux-syms-2.6.16.33-xen + test -z /boot/vmlinux-syms-2.6.16.33-xen + VMLINUX=/boot/vmlinux-syms-2.6.16.33-xen + DO_SETUP=yes + get_image_range linux + test linux = xen + test '!' -z c0100000,c02d2f76 + return + '[' 1 -ne 0 ']' ++ printf %s --xen=/boot/xen-syms-3.0.4-1 ++ awk -F= '{print $1}' + arg=--xen ++ printf %s --xen=/boot/xen-syms-3.0.4-1 ++ awk -F= '{print $2}' + val=/boot/xen-syms-3.0.4-1 + shift + test -z /boot/xen-syms-3.0.4-1 + case "$arg" in + error_if_empty --xen /boot/xen-syms-3.0.4-1 + test -z /boot/xen-syms-3.0.4-1 + XENIMAGE=/boot/xen-syms-3.0.4-1 + DO_SETUP=yes + get_image_range xen + test xen = xen + test '!' -z ff100000,ff15a50f + return + '[' 0 -ne 0 ']' + normalise_events + test 1 -le 0 ++ seq 0 0 + for f in '`seq 0 $((NR_CHOSEN - 1))`' + get_event 0 ++ eval 'echo $CHOSEN_EVENTS_0' +++ echo GLOBAL_POWER_EVENTS:10000:1:1:1 + GOTEVENT=GLOBAL_POWER_EVENTS:10000:1:1:1 + test GLOBAL_POWER_EVENTS:10000:1:1:1 '!=' '' ++ echo GLOBAL_POWER_EVENTS:10000:1:1:1 ++ awk -F: '{print $1}' + EVENT=GLOBAL_POWER_EVENTS ++ /usr/local/bin/ophelp GLOBAL_POWER_EVENTS + EVENT_VAL=29 + test 0 '!=' 0 ++ echo GLOBAL_POWER_EVENTS:10000:1:1:1 ++ awk -F: '{print $2}' + COUNT=10000 ++ echo GLOBAL_POWER_EVENTS:10000:1:1:1 ++ awk -F: '{print $3}' + UNIT_MASK=1 ++ awk -F: '{print $4}' ++ echo GLOBAL_POWER_EVENTS:10000:1:1:1 + KERNEL=1 ++ echo GLOBAL_POWER_EVENTS:10000:1:1:1 ++ awk -F: '{print $5}' + USER=1 + test -z 1 + test -z 1 + test -z 1 + set_event 0 GLOBAL_POWER_EVENTS:10000:1:1:1 + eval CHOSEN_EVENTS_0=GLOBAL_POWER_EVENTS:10000:1:1:1 ++ CHOSEN_EVENTS_0=GLOBAL_POWER_EVENTS:10000:1:1:1 + verify_counters + test 0 = 1 + OPHELP_ARGS= + test 1 '!=' 0 ++ seq 0 0 + for f in '`seq 0 $((NR_CHOSEN - 1))`' + get_event 0 ++ eval 'echo $CHOSEN_EVENTS_0' +++ echo GLOBAL_POWER_EVENTS:10000:1:1:1 + GOTEVENT=GLOBAL_POWER_EVENTS:10000:1:1:1 + test GLOBAL_POWER_EVENTS:10000:1:1:1 '!=' '' + OPHELP_ARGS=' GLOBAL_POWER_EVENTS:10000:1:1:1' ++ /usr/local/bin/ophelp --check-events GLOBAL_POWER_EVENTS:10000:1:1:1 --callgraph=0 + HW_CTRS='0 ' + test 0 '!=' 0 + test 1 -gt 1 + test no = yes -a yes '!=' yes + test -n '' + test yes = yes + SETUP=yes + test 1 -eq 1 -a yes = yes + test --start-daemon '!=' --start-daemon -a --start-daemon '!=' --start + test -n 0 -a yes '!=' yes + test -n '' -a yes '!=' yes -a '' '!=' yes + do_operations + test '' = yes + test yes = yes + check_valid_vmlinux + test -z /boot/vmlinux-syms-2.6.16.33-xen + test -f /boot/vmlinux-syms-2.6.16.33-xen + return + check_valid_xen + test -f /boot/xen-syms-3.0.4-1 + return + do_save_setup + create_dir /root/.oprofile + test '!' -d /root/.oprofile + touch /root/.oprofile/daemonrc + chmod 644 /root/.oprofile/daemonrc + echo SESSION_DIR=/var/lib/oprofile + test 1 '!=' 0 ++ seq 0 0 + for f in '`seq 0 $((NR_CHOSEN - 1))`' + get_event 0 ++ eval 'echo $CHOSEN_EVENTS_0' +++ echo GLOBAL_POWER_EVENTS:10000:1:1:1 + GOTEVENT=GLOBAL_POWER_EVENTS:10000:1:1:1 + echo CHOSEN_EVENTS_0=GLOBAL_POWER_EVENTS:10000:1:1:1 + echo NR_CHOSEN=1 + echo SEPARATE_LIB=0 + echo SEPARATE_KERNEL=0 + echo SEPARATE_THREAD=0 + echo SEPARATE_CPU=0 + echo VMLINUX=/boot/vmlinux-syms-2.6.16.33-xen + echo IMAGE_FILTER= + test 0 '!=' 0 + test 0 '!=' 0 + test yes = yes + echo CPU_BUF_SIZE=0 + test yes '!=' yes + echo CALLGRAPH=0 + test c0100000,c02d2f76 + echo KERNEL_RANGE=c0100000,c02d2f76 + echo XENIMAGE=/boot/xen-syms-3.0.4-1 + test ff100000,ff15a50f + echo XEN_RANGE=ff100000,ff15a50f + test yes = yes + do_start_daemon + test -f /var/lib/oprofile/lock + do_setup + create_dir /var/lib/oprofile + test '!' -d /var/lib/oprofile + test yes '!=' yes + create_dir /var/lib/oprofile/samples/current + test '!' -d /var/lib/oprofile/samples/current + check_valid_vmlinux + test -z /boot/vmlinux-syms-2.6.16.33-xen + test -f /boot/vmlinux-syms-2.6.16.33-xen + return + check_valid_xen + test -f /boot/xen-syms-3.0.4-1 + return + get_image_range linux + test linux = xen + test '!' -z c0100000,c02d2f76 + return + get_image_range xen + test xen = xen + test '!' -z ff100000,ff15a50f + return + do_param_setup + test 0 '!=' 0 + test 0 '!=' 0 + test 0 '!=' 0 + test -n 0 + test yes = yes + echo 0 + test -n '' + test 0 '!=' 0 + test yes = yes -a -f /dev/oprofile/backtrace_depth + set_param backtrace_depth 0 + test yes = yes + echo 0 /usr/local/bin/opcontrol: line 1119: echo: write error: Invalid argument + test 0 = 1 + test 1 = 0 + for f in '$OP_COUNTERS' + set_ctr_param 0 enabled 0 + test 0 = yes + test yes = yes + echo 0 + set_ctr_param 0 event 0 + test 0 = yes + test yes = yes + echo 0 + set_ctr_param 0 count 0 + test 0 = yes + test yes = yes + echo 0 + for f in '$OP_COUNTERS' + set_ctr_param 1 enabled 0 + test 0 = yes + test yes = yes + echo 0 + set_ctr_param 1 event 0 + test 0 = yes + test yes = yes + echo 0 + set_ctr_param 1 count 0 + test 0 = yes + test yes = yes + echo 0 + for f in '$OP_COUNTERS' + set_ctr_param 2 enabled 0 + test 0 = yes + test yes = yes + echo 0 + set_ctr_param 2 event 0 + test 0 = yes + test yes = yes + echo 0 + set_ctr_param 2 count 0 + test 0 = yes + test yes = yes + echo 0 + for f in '$OP_COUNTERS' + set_ctr_param 3 enabled 0 + test 0 = yes + test yes = yes + echo 0 + set_ctr_param 3 event 0 + test 0 = yes + test yes = yes + echo 0 + set_ctr_param 3 count 0 + test 0 = yes + test yes = yes + echo 0 + for f in '$OP_COUNTERS' + set_ctr_param 4 enabled 0 + test 0 = yes + test yes = yes + echo 0 + set_ctr_param 4 event 0 + test 0 = yes + test yes = yes + echo 0 + set_ctr_param 4 count 0 + test 0 = yes + test yes = yes + echo 0 + for f in '$OP_COUNTERS' + set_ctr_param 5 enabled 0 + test 0 = yes + test yes = yes + echo 0 + set_ctr_param 5 event 0 + test 0 = yes + test yes = yes + echo 0 + set_ctr_param 5 count 0 + test 0 = yes + test yes = yes + echo 0 + for f in '$OP_COUNTERS' + set_ctr_param 6 enabled 0 + test 0 = yes + test yes = yes + echo 0 + set_ctr_param 6 event 0 + test 0 = yes + test yes = yes + echo 0 + set_ctr_param 6 count 0 + test 0 = yes + test yes = yes + echo 0 + for f in '$OP_COUNTERS' + set_ctr_param 7 enabled 0 + test 0 = yes + test yes = yes + echo 0 + set_ctr_param 7 event 0 + test 0 = yes + test yes = yes + echo 0 + set_ctr_param 7 count 0 + test 0 = yes + test yes = yes + echo 0 + verify_counters + test 0 = 1 + OPHELP_ARGS= + test 1 '!=' 0 ++ seq 0 0 + for f in '`seq 0 $((NR_CHOSEN - 1))`' + get_event 0 ++ eval 'echo $CHOSEN_EVENTS_0' +++ echo GLOBAL_POWER_EVENTS:10000:1:1:1 + GOTEVENT=GLOBAL_POWER_EVENTS:10000:1:1:1 + test GLOBAL_POWER_EVENTS:10000:1:1:1 '!=' '' + OPHELP_ARGS=' GLOBAL_POWER_EVENTS:10000:1:1:1' ++ /usr/local/bin/ophelp --check-events GLOBAL_POWER_EVENTS:10000:1:1:1 --callgraph=0 + HW_CTRS='0 ' + test 0 '!=' 0 + OPROFILED_EVENTS= ++ seq 0 0 + for f in '`seq 0 $((NR_CHOSEN - 1))`' + get_event 0 ++ eval 'echo $CHOSEN_EVENTS_0' +++ echo GLOBAL_POWER_EVENTS:10000:1:1:1 + GOTEVENT=GLOBAL_POWER_EVENTS:10000:1:1:1 + test GLOBAL_POWER_EVENTS:10000:1:1:1 '!=' '' ++ echo GLOBAL_POWER_EVENTS:10000:1:1:1 ++ awk -F: '{print $1}' + EVENT=GLOBAL_POWER_EVENTS ++ /usr/local/bin/ophelp GLOBAL_POWER_EVENTS + EVENT_STR=29 + check_event_mapping_data + is_non_cell_ppc64_variant i386/p4 + case "$1" in + return 0 + test 0 -ne 0 + '[' i386/p4 = ppc64/cell-be ']' ++ echo 29 ++ awk '{print $1}' + EVENT_VAL=29 ++ echo GLOBAL_POWER_EVENTS:10000:1:1:1 ++ awk -F: '{print $2}' + COUNT=10000 ++ echo GLOBAL_POWER_EVENTS:10000:1:1:1 ++ awk -F: '{print $3}' + UNIT_MASK=1 ++ echo GLOBAL_POWER_EVENTS:10000:1:1:1 ++ awk -F: '{print $4}' + KERNEL=1 ++ echo GLOBAL_POWER_EVENTS:10000:1:1:1 ++ awk -F: '{print $5}' + USER=1 ++ echo 0 ++ awk '{print $1}' + CTR=0 + test GLOBAL_POWER_EVENTS = SPU_CYCLES + test GLOBAL_POWER_EVENTS = RTC_INTERRUPTS + set_ctr_param 0 enabled 1 + test 0 = yes + test yes = yes + echo 1 + set_ctr_param 0 event 29 + test 0 = yes + test yes = yes + echo 29 + let loop_count=1 + for i in '${EVENT_STR}' + test 1 -gt 1 + let loop_count=1+1 + set_ctr_param 0 count 10000 + test 0 = yes + test yes = yes + echo 10000 + set_ctr_param 0 kernel 1 + test 0 = yes + test yes = yes + echo 1 + set_ctr_param 0 user 1 + test 0 = yes + test yes = yes + echo 1 + set_ctr_param 0 unit_mask 1 + test 0 = yes + test yes = yes + echo 1 + OPROFILED_EVENTS=GLOBAL_POWER_EVENTS:29: + OPROFILED_EVENTS=GLOBAL_POWER_EVENTS:29:0:10000:1: + OPROFILED_EVENTS=GLOBAL_POWER_EVENTS:29:0:10000:1:1:1, + OPD_ARGS=' --session-dir=/var/lib/oprofile --separate-lib=0 --separate-kernel=0 --separate-thread=0 --separate-cpu=0' + OPD_ARGS=' --session-dir=/var/lib/oprofile --separate-lib=0 --separate-kernel=0 --separate-thread=0 --separate-cpu=0 --events=GLOBAL_POWER_EVENTS:29:0:10000:1:1:1,' + test /boot/vmlinux-syms-2.6.16.33-xen = none + OPD_ARGS=' --session-dir=/var/lib/oprofile --separate-lib=0 --separate-kernel=0 --separate-thread=0 --separate-cpu=0 --events=GLOBAL_POWER_EVENTS:29:0:10000:1:1:1, --vmlinux=/boot/vmlinux-syms-2.6.16.33-xen --kernel-range=c0100000,c02d2f76' + test /boot/xen-syms-3.0.4-1 = none + OPD_ARGS=' --session-dir=/var/lib/oprofile --separate-lib=0 --separate-kernel=0 --separate-thread=0 --separate-cpu=0 --events=GLOBAL_POWER_EVENTS:29:0:10000:1:1:1, --vmlinux=/boot/vmlinux-syms-2.6.16.33-xen --kernel-range=c0100000,c02d2f76 --xen-image=/boot/xen-syms-3.0.4-1 --xen-range=ff100000,ff15a50f' + test -z '' + test -z '' + test -n '' + vecho 'executing oprofiled --session-dir=/var/lib/oprofile --separate-lib=0 --separate-kernel=0 --separate-thread=0 --separate-cpu=0 --events=GLOBAL_POWER_EVENTS:29:0:10000:1:1:1, --vmlinux=/boot/vmlinux-syms-2.6.16.33-xen --kernel-range=c0100000,c02d2f76 --xen-image=/boot/xen-syms-3.0.4-1 --xen-range=ff100000,ff15a50f' + test -n '' + /usr/local/bin/oprofiled --session-dir=/var/lib/oprofile --separate-lib=0 --separate-kernel=0 --separate-thread=0 --separate-cpu=0 --events=GLOBAL_POWER_EVENTS:29:0:10000:1:1:1, --vmlinux=/boot/vmlinux-syms-2.6.16.33-xen --kernel-range=c0100000,c02d2f76 --xen-image=/boot/xen-syms-3.0.4-1 --xen-range=ff100000,ff15a50f + COUNT=0 + test -f /var/lib/oprofile/lock + echo 'Daemon started.' Daemon started. + test '' = yes + test '' = yes + test '' = yes + test '' = yes + test '' = yes + test '' = yes + test '' = yes