Changeset 2204 in ProjectBuilder


Ignore:
Timestamp:
Mar 11, 2017, 12:51:24 AM (7 years ago)
Author:
Bruno Cornec
Message:

Munch improved test script for non-regression

File:
1 edited

Legend:

Unmodified
Added
Removed
  • devel/pbtest/bin/pbtest

    r2084 r2204  
    1212
    1313# You may have multiple distros here
    14 TESTVEDIST="debian-6.0-x86_64 ubuntu-12.04-i386 fedora-16-x86_64 opensuse-12.1-x86_64 mageia-2-i386 mandriva-2010.1-i386"
     14TESTVEDIST="debian-8-x86_64 ubuntu-16.04-x86_64 fedora-25-x86_64 opensuse-42.2-x86_64 mageia-5-x86_64 centos-7-x86_64"
    1515# Only one VM is tested for now.
    1616TESTVMDIST="fedora-16-i386"
     
    4444
    4545sudocmd() {
    46 cmd=$1
     46cmd=$*
    4747
    4848echo " "
     
    5959
    6060
     61# For rpmbootstrap VE
    6162for d in $TESTVEDIST; do
    6263    # umount /proc in VE in case
     
    6869    fi
    6970done
    70 sudocmd "rm -rf $PBTEST/* $PBTEST/.??*"
    71 sudocmd "rmdir $PBTEST"
     71
     72# Cleanup phase
    7273sudocmd "killall -u $PBUSER"
     74sudocmd "rm -rf $PBTEST/"
    7375sudocmd "userdel $PBUSER"
    7476#sudocmd "groupdel $PBUSER" 1
    7577sudocmd "useradd $PBUSER"
     78sudocmd "chmod 755 $PBTEST"
    7679sudocmd "grep -q $PBUSER /etc/sudoers"
    7780if [ $? -ne 0 ]; then
     
    8891$PBUSER ALL=NOPASSWD:/bin/mkdir
    8992$PBUSER ALL=NOPASSWD:/usr/bin/qemu-kvm
     93$PBUSER ALL=NOPASSWD:/usr/bin/docker
    9094EOF
    9195    sudocmd "cat /etc/sudoers /tmp/sudoers" | grep -v "INFO " > /tmp/sudoers2
     
    9599    rm -f /tmp/sudoers /tmp/sudoers2
    96100fi
    97 # Force $PBUSER (for now pbuser hardcoded!) account passwd is $PBUSER
     101# Force $PBUSER (for now pbtest hardcoded!) account passwd is $PBUSER
    98102sudocmd "perl -pi -e 's|^pbtest:.*|pbtest:$2a$08$2Q.tEty4v/fU0RyPeDelk.AjLAtXUXU3DpSs/l/8YrFmau1LJRCqC:15483:0:99999:7:::|' /etc/shadow"
    99103sudopbtest "echo export PBPROJ=$PBPROJ >> $PBTEST/.bash_profile"
     
    129133sudopbtest "chmod 700 $PBTEST/.ssh"
    130134
    131 sudopbtest "pb -h"
     135sudopbtest "pb --version"
    132136sudopbtest "pbdistrocheck"
    133 sudopbtest "pb clean 2>&1 > /dev/null" 1
    134137
    135138cat > /tmp/.pbrc << EOF
     
    145148sshdir pb = \$ENV{'HOME'}/ftp
    146149#
    147 pbpackager default = Big Chief <bigchief@hp.com>
     150pbpackager default = Big Chief <bigchief@project-builder.org>
    148151vmport pb = 2200
    149152pbparallel pb = 6
     
    152155EOF
    153156sudocmd "mv /tmp/.pbrc $PBTEST/.pbrc"
     157
     158sudopbtest "pb -p $PBPROJ clean 2>&1 > /dev/null" 1
    154159
    155160cat > /tmp/.pbrc << EOF
     
    164169
    165170cat > /tmp/.pbrc << EOF
    166 vetype default = chroot
     171vetype default = docker
    167172verpmtype default = rpmbootstrap
    168173vedebtype default = debootstrap
     
    178183sudopbtest "ssh-keygen -f $PBTEST/.ssh/id_rsa -t rsa -b 768 -v -N ''"
    179184sudopbtest "cp $PBTEST/.ssh/id_rsa.pub $PBTEST/.ssh/authorized_keys"
    180 sudopbtest "chmod 600 $PBTEST/.ssh/authorized_keys $PBTEST/.ssh/id_rsa.pub"
     185sudopbtest "chmod 600 $PBTEST/.ssh/authorized_keys $PBTEST/.ssh/id_rsa"
     186sudopbtest "chmod 644 $PBTEST/.ssh/id_rsa.pub"
    181187sudopbtest "ssh localhost touch $PBTEST/ftp/README"
    182188
    183189# Create SVN conf files - doesn't work fully as it asks for a password - solved with PBVCSOPT
    184 sudopbtest "svn info 2>&1 > /dev/null" 1
    185190cat > /tmp/servers << EOF
    186191[global]
     
    189194store-auth-creds = yes
    190195EOF
     196sudopbtest "mkdir -p $PBTEST/.subversion"
    191197sudocmd "mv /tmp/servers $PBTEST/.subversion/servers"
    192198sudocmd "chown ${PBUSER}:$PBUSER $PBTEST/.subversion/servers"
     
    199205sudopbtest "svn add $PBTEST/pb/README"
    200206sudopbtest "svn ci $VCSOPT -m 'add readme' $PBTEST/pb/README"
    201 sudopbtest "PBVCSOPT=\"$VCSOPT\" pb -r 2.5 newproj afio"
     207sudopbtest "svn info $PBTEST/pb 2>&1 > /dev/null" 1
     208sudopbtest "PBVCSOPT=\"$VCSOPT\" pb -p $PBPROJ -r 2.5 newproj afio"
    202209
    203210grep -vE '^defpkgdir|^projver|^projtag|^pburl|^pbrepo|^shh' $PBTEST/pb/afio/pbconf/2.5/afio.pb > /tmp/afio.pb
     
    249256
    250257# First build
    251 sudopbtest "pb -r 2.5 sbx2build"
     258sudopbtest "pb -p $PBPROJ -r 2.5 sbx2build"
    252259
    253260cat > /tmp/pbtestcmd << EOF
     
    276283sudopbtest "svn ci -m 'Adding pbcl for afio' $VCSOPT $PBTEST/pb"
    277284
    278 sudopbtest "pb sbx2pkg"
    279 rpm -qilvp $PBTEST/pb/afio/pbbuild/RPMS/x86_64/afio-2.5*
     285sudopbtest "pb -p afio -r 2.5 sbx2pkg"
     286sudopbtest "rpm -qilvp $PBTEST/pb/afio/pbbuild/RPMS/x86_64/afio-2.5*"
    280287
    281288cat > /tmp/pbtestcmd << EOF
     
    315322sudopbtest /tmp/pbtestcmd
    316323
    317 
    318324#dpkg -I ~ftp/pub/afio/test/debian/5.0/afio_2.5-0.20091204131057_i386.deb
    319325#dpkg -x ~ftp/pub/afio/test/debian/5.0/afio_2.5-0.20091204131057_i386.deb /tmp/x ;  ls -lR /tmp/x
    320326
    321 sudopbtest "pb getconf"
     327# need to be part of docker group for Docker
     328sudocmd "grep -Eq '^docker:' /etc/group" | grep $PBUSER
     329if [ $? -ne 0 ]; then
     330    sudocmd usermod $PBUSER -G docker
     331fi
     332
     333for d in $TESTVEDIST; do
     334    dd=`echo $d | cut -d'-' -f1`
     335    vv=`echo $d | cut -d'-' -f2`
     336    aa=`echo $d | cut -d'-' -f3`
     337    #sudopbtest "PATH=${PATH}:/sbin:/usr/sbin pb -p pb -T docker -m $d -i ${dd}:$vv newve"
     338    #sudopbtest "pb -p pb -m $d -T docker sbx2setupve"
     339    #sudopbtest "pb -p pb -m $d snapve"
     340    sudopbtest "pb -p $PBPROJ -r 2.5 -m $d sbx2prepve"
     341    sudopbtest "pb -p $PBPROJ -r 2.5 -m $d sbx2ve"
     342    # Cleaning VE to use the snapshot
     343    #dd=`echo $d | cut -d'-' -f1`
     344    #vv=`echo $d | cut -d'-' -f2`
     345    #aa=`echo $d | cut -d'-' -f3`
     346    #if [ -f "$PBTEST/ve/$dd/$vv/$aa/proc/cpuinfo" ]; then
     347        #sudocmd "umount $PBTEST/ve/$dd/$vv/$aa/proc"
     348    #fi
     349    #sudocmd "rm -rf $PBTEST/ve/$dd/$vv/$aa"
     350    #sudopbtest "pb -S -m $d sbx2ve"
     351done
     352
     353sudopbtest "svn ci $VCSOPT -m 'sync before newver' $PBTEST/pb"
     354sudopbtest "PBVCSOPT=\"$VCSOPT\" pb -p $PBPROJ -r 2.5 -V 2.6 newver"
     355# We now need to adapt tar file,log ... to a 2.6 content
     356#sudopbtest "pb -p $PBPROJ -r 2.6 sbx2pkg"
     357
     358# need to be part of group video for KVM
     359sudocmd "grep -Eq '^video:' /etc/group" | grep $PBUSER
     360if [ $? -ne 0 ]; then
     361    sudocmd usermod $PBUSER -G video
     362fi
     363
     364sudopbtest "pb -p $PBPROJ getconf pburl"
    322365# test also with pb
    323 sudopbtest "pb -p pb -r devel getconf"
     366sudopbtest "pb -p pb -r devel getconf pburl"
    324367sudopbtest "pb -p pb -r devel sbx2pkg"
    325368sudopbtest "pb -p pb build2ssh"
    326369sudopbtest "pb -p pb pkg2ssh"
    327370
    328 for d in $TESTVEDIST; do
    329     sudopbtest "PATH=${PATH}:/sbin:/usr/sbin pb -p pb -m $d newve"
    330     sudopbtest "pb -p pb -m $d sbx2setupve"
    331     sudopbtest "pb -p pb -m $d snapve"
    332     sudopbtest "pb -m $d sbx2ve"
    333     # Cleaning VE to use the snapshot
    334     dd=`echo $d | cut -d'-' -f1`
    335     vv=`echo $d | cut -d'-' -f2`
    336     aa=`echo $d | cut -d'-' -f3`
    337     if [ -f "$PBTEST/ve/$dd/$vv/$aa/proc/cpuinfo" ]; then
    338         sudocmd "umount $PBTEST/ve/$dd/$vv/$aa/proc"
    339     fi
    340     sudocmd "rm -rf $PBTEST/ve/$dd/$vv/$aa"
    341     sudopbtest "pb -S -m $d sbx2ve"
    342 done
    343 
    344 sudopbtest "svn ci $VCSOPT -m 'sync before newver' $PBTEST/pb"
    345 sudopbtest "PBVCSOPT=\"$VCSOPT\" pb -r 2.5 -V 2.6 newver"
    346 # We now need to adapt tar file,log ... to a 2.6 content
    347 #sudopbtest "pb -r 2.6 sbx2pkg"
    348 
    349 # need tobe part of group video for KVM
    350 sudocmd "grep -Eq '^video:' /etc/group" | grep $PBUSER
    351 if [ $? -ne 0 ]; then
    352     sudocmd "perl -pi -e 's|^(video:.*)$|$1,$ENV{'PBUSER'}|' /etc/shadow"
    353 fi
    354 d=mageia-2-i386
    355 sudopbtest "qemu-img create -f qcow2 $PBTEST/vm/$d.qemu 72G"
    356 sudopbtest "sudo 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 -boot once=n -redir tcp:2200:10.0.2.15:22"
     371d=mageia-5-i386
     372sudopbtest "qemu-img create -f qcow2 $PBTEST/vm/$d.qemu 30G"
     373sudopbtest "qemu-kvm -m 1024 -kernel /pub/mageia/distrib/5/i586/isolinux/i386/vmlinuz -initrd /pub/mageia/distrib/5/i586/isolinux/i386/all.rdz -append "ramdisk_size=128000 root=/dev/ram3 kickstart=http://192.168.8.2/pub/ks/guerrero/ks.pl automatic=method:http,server:192.168.8.2,directory:/pub/mageia/distrib/5/i586,network:dhcp" -drive file=$PBTEST/vm/$d.qemu,if=virtio,media=disk -boot once=n -redir tcp:2200:10.0.2.15:22"
    357374sudopbtest "pb -p pb -r devel -m $d sbx2setupvm"
    358375sudopbtest "pb -p pb -m $d snapvm"
    359 sudopbtest "pb -m $d sbx2vm"
     376sudopbtest "pb -p pb -m $d sbx2vm"
    360377
    361378# test also with MondoRescue
    362 pb -p mondorescue -r branches/3.0 cms2pkg
     379#sudopbtest b -p mondorescue -r branches/3.3 cms2pkg
    363380
    364381# cleanup
    365 sudopbtest "pb clean"
     382sudopbtest "pb -p $PBPROJ clean"
    366383sudopbtest "killall svnserve" 1
    367384exit
Note: See TracChangeset for help on using the changeset viewer.