Changeset 1597 in ProjectBuilder for devel/pb/t/pbtest


Ignore:
Timestamp:
May 26, 2012, 2:13:12 AM (12 years ago)
Author:
Bruno Cornec
Message:
  • Adds option pbshowsudo (false by default) to check whether we display the detail of sudo commands (to match security requiremetns) or not (to have a nicer output)
  • Fix a template generation error in Env.pm for deb rules file (line was split)
  • In VE.pm fix modes of the chroot after the snapshot phase detection to avoid error which make the code die
  • In pb create the RPM build dirs before entering in the parallel loop as sometimes 2 identical were created simultaneously, leading to an error leading to a die
  • In pb revert the code added by Eric to check deb content creation as it was failing in my environement (naming issues). Could be added after 0.12.1 is out as an additional check, but anyway as the files are copied after, it's not that important.
  • Use full path of chown in sudo for pb
  • Make the test account a variable in pbtest
  • Start to add test case for a VM in pbtest
  • This patch makes pb build back in a debian 6 VE.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • devel/pb/t/pbtest

    r1596 r1597  
    1212
    1313# You may have multiple distros here
    14 TESTVEDIST="fedora-16-x86_64 mageia-1-i386 debian-6.0-x86_64 ubuntu-12.04-i386"
     14TESTVEDIST="debian-6-x86_64 ubuntu-12.04-i386 fedora-16-x86_64 opensuse-12.1-x86_64 mageia-2-i386 mandriva-2010.0-i386"
    1515# Only one VM is tested for now.
    1616TESTVMDIST="fedora-16-i386"
    1717TESTVMISO="/users/bruno/iso/Fedora-16-i386-DVD.iso"
    18 PBTEST="/home/pbtest"
     18PBUSER=pbtest
     19PBTEST="/home/$PBUSER"
    1920export PBPROJ=afio
    2021
     
    2728
    2829if [ _"$cmd" == _"/tmp/pbtestcmd" ]; then
    29     echo "INFO (as pbtest): Now running `head -1 $cmd` [$msg]"
     30    echo "INFO (as $PBUSER): Now running `head -1 $cmd` [$msg]"
    3031else
    31     echo "INFO (as pbtest): Now running $cmd [$msg]"
    32 fi
    33 sudo -n -E su - pbtest -c "$cmd"
     32    echo "INFO (as $PBUSER): Now running $cmd [$msg]"
     33fi
     34sudo -n -E su - $PBUSER -c "$cmd"
    3435ret=$?
    3536if [ $ret -ne 0 ] && [ _"$msg" == _"" ]; then
     
    5758
    5859sudocmd "rm -rf $PBTEST/* $PBTEST/.??*"
    59 sudocmd "killall -u pbtest"
    60 sudocmd "userdel pbtest"
    61 #sudocmd "groupdel pbtest" 1
    62 sudocmd "useradd pbtest"
    63 sudocmd "grep -q pbtest /etc/sudoers"
     60sudocmd "killall -u $PBUSER"
     61sudocmd "userdel $PBUSER"
     62#sudocmd "groupdel $PBUSER" 1
     63sudocmd "useradd $PBUSER"
     64sudocmd "grep -q $PBUSER /etc/sudoers"
    6465if [ $? -ne 0 ]; then
    6566    cat > /tmp/sudoers << EOF
    6667Defaults env_keep += "PBPROJ"
    67 # This is for the pbtest account in the VE only
    68 pbtest ALL=NOPASSWD:/usr/sbin/chroot
    69 pbtest ALL=NOPASSWD:/usr/bin/rpmbootstrap
    70 pbtest ALL=NOPASSWD:/usr/sbin/debootstrap
    71 pbtest ALL=NOPASSWD:/bin/chmod
    72 pbtest ALL=NOPASSWD:/bin/cp
    73 pbtest ALL=NOPASSWD:/bin/rm
    74 pbtest ALL=NOPASSWD:/bin/tar
    75 pbtest ALL=NOPASSWD:/bin/mkdir
     68# This is for the $PBUSER account in the VE only
     69$PBUSER ALL=NOPASSWD:/usr/sbin/chroot
     70$PBUSER ALL=NOPASSWD:/usr/bin/rpmbootstrap
     71$PBUSER ALL=NOPASSWD:/usr/sbin/debootstrap
     72$PBUSER ALL=NOPASSWD:/bin/chmod
     73$PBUSER ALL=NOPASSWD:/bin/cp
     74$PBUSER ALL=NOPASSWD:/bin/rm
     75$PBUSER ALL=NOPASSWD:/bin/tar
     76$PBUSER ALL=NOPASSWD:/bin/mkdir
     77$PBUSER ALL=NOPASSWD:/bin/chown
    7678EOF
    7779    sudocmd "cat /etc/sudoers /tmp/sudoers > /tmp/sudoers2"
     
    8183    rm -f /tmp/sudoers /tmp/sudoers2
    8284fi
    83 # Force pbtest account
    84 sudocmd "perl -pi -e 's|^pbtest:.*|pbtest:$2a$08$2Q.tEty4v/fU0RyPeDelk.AjLAtXUXU3DpSs/l/8YrFmau1LJRCqC:15483:0:99999:7:::|' /etc/shadow"
     85# Force $PBUSER account passwd is $PBUSER
     86sudocmd "perl -pi -e 's|^$PBUSER:.*|$PBUSER:$2a$08$2Q.tEty4v/fU0RyPeDelk.AjLAtXUXU3DpSs/l/8YrFmau1LJRCqC:15483:0:99999:7:::|' /etc/shadow"
    8587sudopbtest "echo export PBPROJ=$PBPROJ >> $PBTEST/.bash_profile"
    8688sudopbtest "env | grep PBPROJ"
     
    9193cat > /tmp/authz << EOF
    9294[/]
    93 pbtest = rw
     95$PBUSER = rw
    9496* = r
    9597EOF
     
    9799cat > /tmp/passwd << EOF
    98100[users]
    99 pbtest = pbtest
     101$PBUSER = $PBUSER
    100102EOF
    101103sudocmd "mv /tmp/passwd $PBTEST/svn/conf/passwd"
     
    109111EOF
    110112sudocmd "mv /tmp/svnserve.conf $PBTEST/svn/conf/svnserve.conf"
    111 sudocmd "chown pbtest:pbtest $PBTEST/svn/conf/authz $PBTEST/svn/conf/passwd $PBTEST/svn/conf/svnserve.conf"
     113sudocmd "chown ${PBUSER}:$PBUSER $PBTEST/svn/conf/authz $PBTEST/svn/conf/passwd $PBTEST/svn/conf/svnserve.conf"
    112114sudopbtest "killall svnserve" 1
    113115sudopbtest "svnserve -d -r $PBTEST/svn"
     
    128130pburl mondorescue = svn://svn.mondorescue.org/mondorescue/branches
    129131sshhost pb = localhost
    130 sshlogin pb = pbtest
     132sshlogin pb = $PBUSER
    131133sshdir pb = \$ENV{'HOME'}/ftp
    132134#
     
    155157veopt default =
    156158vesnap default = false
    157 velogin default = pbtest
     159velogin default = $PBUSER
    158160EOF
    159161echo "velist default = `echo $TESTVEDIST | sed 's/ /,/g'`" >> /tmp/.pbrc
    160162sudocmd "mv /tmp/.pbrc $PBTEST/ve/.pbrc"
    161 sudocmd "chown pbtest:pbtest $PBTEST/.pbrc $PBTEST/ve/.pbrc $PBTEST/vm/.pbrc"
     163sudocmd "chown ${PBUSER}:$PBUSER $PBTEST/.pbrc $PBTEST/ve/.pbrc $PBTEST/vm/.pbrc"
    162164
    163165sudopbtest "ssh-keygen -f $PBTEST/.ssh/id_rsa -t rsa -b 768 -v -N ''"
     
    175177EOF
    176178sudocmd "mv /tmp/servers $PBTEST/.subversion/servers"
    177 sudocmd "chown pbtest:pbtest $PBTEST/.subversion/servers"
    178 
    179 VCSOPT='--username pbtest --password pbtest'
     179sudocmd "chown ${PBUSER}:$PBUSER $PBTEST/.subversion/servers"
     180
     181VCSOPT='--username $PBUSER --password $PBUSER'
    180182
    181183sudopbtest "svn import $PBTEST/pb svn://localhost/pb -m 'Initial creation of pb repo' $VCSOPT"
     
    194196pbrepo afio = ftp://ftp.project-builder.org
    195197sshhost afio = localhost
    196 sshlogin afio = pbtest
     198sshlogin afio = $PBUSER
    197199sshdir afio = \$ENV{'HOME'}/ftp
    198200EOF
    199201sudocmd "mv /tmp/afio.pb $PBTEST/pb/afio/pbconf/2.5/afio.pb"
    200 sudocmd "chown pbtest:pbtest $PBTEST/pb/afio/pbconf/2.5/afio.pb"
     202sudocmd "chown ${PBUSER}:$PBUSER $PBTEST/pb/afio/pbconf/2.5/afio.pb"
    201203cat > /tmp/pbtestcmd << EOF
    202204perl -pi -e 's|testver\s+afio\s+=\s+true|testver\ afio\ =\ false|' $PBTEST/pb/afio/pbconf/2.5/afio.pb
     
    214216EOF
    215217sudocmd "mv /tmp/all.pbf $PBTEST/pb/afio/pbconf/2.5/pbfilter/all.pbf"
    216 sudocmd "chown pbtest:pbtest $PBTEST/pb/afio/pbconf/2.5/pbfilter/all.pbf"
     218sudocmd "chown ${PBUSER}:$PBUSER $PBTEST/pb/afio/pbconf/2.5/pbfilter/all.pbf"
    217219
    218220grep -vE 'PBGRP|PBLIC' $PBTEST/pb/afio/pbconf/2.5/pbfilter/rpm.pbf > /tmp/rpm.pbf
     
    223225EOF
    224226sudocmd "mv /tmp/rpm.pbf $PBTEST/pb/afio/pbconf/2.5/pbfilter/rpm.pbf"
    225 sudocmd "chown pbtest:pbtest $PBTEST/pb/afio/pbconf/2.5/pbfilter/rpm.pbf "
     227sudocmd "chown ${PBUSER}:$PBUSER $PBTEST/pb/afio/pbconf/2.5/pbfilter/rpm.pbf "
     228
     229cat >> /tmp/deb.pbf << EOF
     230filter PBGRP = utils
     231filter PBLIC = Afio
     232EOF
     233sudocmd "mv /tmp/deb.pbf $PBTEST/pb/afio/pbconf/2.5/pbfilter/deb.pbf"
     234sudocmd "chown ${PBUSER}:$PBUSER $PBTEST/pb/afio/pbconf/2.5/pbfilter/rpm.pbf "
    226235
    227236# First build
     
    249258EOF
    250259sudocmd "mv /tmp/pbcl $PBTEST/pb/afio/pbconf/2.5/afio/pbcl"
    251 sudocmd "chown pbtest:pbtest $PBTEST/pb/afio/pbconf/2.5/afio/pbcl"
     260sudocmd "chown ${PBUSER}:$PBUSER $PBTEST/pb/afio/pbconf/2.5/afio/pbcl"
    252261sudopbtest "svn add $PBTEST/pb/afio/pbconf/2.5/afio/pbcl"
    253262sudopbtest "svn ci -m 'Adding pbcl for afio' $VCSOPT $PBTEST/pb"
     
    259268# Filtering $PBTEST/pb/afio/pbconf/2.5/afio/deb/control
    260269perl -pi -e 's|,\s*PBDEP||' $PBTEST/pb/afio/pbconf/2.5/afio/deb/control
    261 perl -pi -e 's|Recommends: PBREC||' $PBTEST/pb/afio/pbconf/2.5/afio/deb/control
    262 perl -pi -e 's|Suggests: PBSUG||' $PBTEST/pb/afio/pbconf/2.5/afio/deb/control
     270sed -i '/Recommends: PBREC/d' $PBTEST/pb/afio/pbconf/2.5/afio/deb/control
     271sed -i '/Suggests: PBSUG/d' $PBTEST/pb/afio/pbconf/2.5/afio/deb/control
    263272EOF
    264273chmod 755 /tmp/pbtestcmd
     
    279288EOF
    280289sudocmd "mv /tmp/afio.docs $PBTEST/pb/afio/pbconf/2.5/afio/deb/afio.docs"
    281 sudocmd "chown pbtest:pbtest $PBTEST/pb/afio/pbconf/2.5/afio/deb/afio.docs "
     290sudocmd "chown ${PBUSER}:$PBUSER $PBTEST/pb/afio/pbconf/2.5/afio/deb/afio.docs "
    282291
    283292cat > /tmp/pbtestcmd << EOF
     
    285294perl -pi -e 's|config.status: configure|config.status: Makefile|' $PBTEST/pb/afio/pbconf/2.5/afio/deb/rules
    286295perl -pi -e 's|dh_installchangelogs ChangeLog|dh_installchangelogs debian/changelog|' $PBTEST/pb/afio/pbconf/2.5/afio/deb/rules
    287 perl -pi -e 's|\$(MAKE) install|mkdir -p \$(CURDIR)/debian/\$(PACKAGE_NAME)/usr/bin \$(CURDIR)/debian/\$(PACKAGE_NAME)/usr/share/man/man1|' $PBTEST/pb/afio/pbconf/2.5/afio/deb/rules
    288 perl -pi -e 's|# - copy html manual to temporary location for renaming|install -p -m 755 afio \$(CURDIR)/debian/\$(PACKAGE_NAME)/usr/bin ; install -p -m 644 afio.1 \$(CURDIR)/debian/\$(PACKAGE_NAME)/usr/share/man/man1|' $PBTEST/pb/afio/pbconf/2.5/afio/deb/rules
     296perl -pi -e 's|\\\$(MAKE) install.*|mkdir -p \\\$(CURDIR)/debian/\\\$(PACKAGE_NAME)/usr/bin \\\$(CURDIR)/debian/\\\$(PACKAGE_NAME)/usr/share/man/man1|' $PBTEST/pb/afio/pbconf/2.5/afio/deb/rules
     297perl -pi -e 's|# - copy html manual to temporary location for renaming|install -p -m 755 afio \\\$(CURDIR)/debian/\\\$(PACKAGE_NAME)/usr/bin ; install -p -m 644 afio.1 \\\$(CURDIR)/debian/\\\$(PACKAGE_NAME)/usr/share/man/man1|' $PBTEST/pb/afio/pbconf/2.5/afio/deb/rules
    289298sed -i -e '/\.\/configure /d' $PBTEST/pb/afio/pbconf/2.5/afio/deb/rules
    290299EOF
     
    312321    vv=`echo $d | cut -d'-' -f2`
    313322    aa=`echo $d | cut -d'-' -f3`
    314     if [ -f $PBTEST/ve/$dd/$vv/$aa/proc/cpuinfo ]; then
     323    if [ -f "$PBTEST/ve/$dd/$vv/$aa/proc/cpuinfo" ]; then
    315324        sudocmd "umount $PBTEST/ve/$dd/$vv/$aa/proc"
    316325    fi
     
    323332sudopbtest "pb clean"
    324333
    325 
    326 
    327 #qemu-kvm \
    328 #-m 1024 \
    329 #-kernel /pub/mageia/distrib/cauldron/i586/isolinux/alt0/vmlinuz \
    330 #-initrd /pub/mageia/distrib/cauldron/i586/isolinux/alt0/all.rdz \
    331 #-append "ramdisk_size=128000 root=/dev/ram3 kickstart=http://192.168.8.55/pub/ks/guerrero/ks.pl automatic=method:http,server:192.168.8.55,directory:/pub/mageia/distrib/cauldron/i586,network:dhcp" \
    332 #-drive file=/users/qemu/mageia-2-i386.qemu,if=virtio,media=disk \
    333 #-redir tcp:2200:10.0.2.15:22
     334# need tobe part of group video for KVM
     335sudocmd "grep -q $PBUSER /etc/group"
     336if [ $? -ne 0 ]; then
     337    sudocmd "perl -pi -e 's|^(video:.*)$|$1,|' /etc/shadow"
     338fi
     339d=mageia-2-i386
     340sudopbtest "qemu-img create -f qcow2 $PBTEST/vm/$d.qemu 72G"
     341sudopbtest "qemu-kvm -m 1024 -kernel /pub/mageia/distrib/2/i586/isolinux/alt0/vmlinuz -initrd /pub/mageia/distrib/2/i586/isolinux/alt0/all.rdz -append "ramdisk_size=128000 root=/dev/ram3 kickstart=http://192.168.8.55/pub/ks/guerrero/ks.pl automatic=method:http,server:192.168.8.55,directory:/pub/mageia/distrib/2/i586,network:dhcp" -drive file=$PBTEST/vm/$d.qemu,if=virtio,media=disk -redir tcp:2200:10.0.2.15:22"
     342sudopbtest "pb -p pb -m $d sbx2setupvm"
     343sudopbtest "pb -p pb -m $d snapvm"
     344sudopbtest "pb -m $d sbx2vm"
     345
    334346
    335347# test also with MOndoRescue
Note: See TracChangeset for help on using the changeset viewer.