mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 19:32:31 +00:00 
			
		
		
		
	
							
								
								
									
										48
									
								
								xCAT-test/autotest/testcase/genesis/cases0
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								xCAT-test/autotest/testcase/genesis/cases0
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | ||||
| start:nodeset_shell | ||||
| description: verify could log in genesis shell | ||||
| cmd:nodeset $$CN shell | ||||
| check:rc==0 | ||||
| cmd:rpower $$CN boot | ||||
| check:rc==0 | ||||
| cmd:perl /opt/xcat/share/xcat/tools/autotest/testcase/genesis/genesistest.pl -t -n $$CN | ||||
| cmd:xdsh $$CN cat /proc/cmdline | ||||
| check:rc==0 | ||||
| check:output=~BOOT_IMAGE=/xcat/genesis.kernel | ||||
| cmd:nodeset $$CN boot | ||||
| cmd:rpower $$CN boot | ||||
| check:rc==0 | ||||
| end | ||||
|  | ||||
| start:nodeset_cmdline | ||||
| description:verify could run cmdline successfully | ||||
| cmd:perl /opt/xcat/share/xcat/tools/autotest/testcase/genesis/genesistest.pl -d -r __GETNODEATTR($$CN,arch)__ | ||||
| cmd:nodeset $$CN runcmd="cmdtest,shell" | ||||
| check:rc==0 | ||||
| cmd:rpower $$CN boot | ||||
| check:rc==0 | ||||
| cmd: perl /opt/xcat/share/xcat/tools/autotest/testcase/genesis/genesistest.pl -t -n $$CN | ||||
| cmd:xdsh $$CN "cat /tmp/testresult" | ||||
| check:rc==0 | ||||
| check:output=~testcmd | ||||
| cmd:perl /opt/xcat/share/xcat/tools/autotest/testcase/genesis/genesistest.pl  -c -n $$CN -r __GETNODEATTR($$CN,arch)__ | ||||
| check:rc==0 | ||||
| cmd:rpower $$CN boot | ||||
| check:rc==0 | ||||
| end | ||||
|  | ||||
| start:nodeset_runimg | ||||
| description:verify runimg could work | ||||
| cmd:perl /opt/xcat/share/xcat/tools/autotest/testcase/genesis/genesistest.pl -g -n $$CN -i $$imgip | ||||
| check:rc==0 | ||||
| cmd:rpower $$CN boot | ||||
| check:rc==0 | ||||
| cmd:perl /opt/xcat/share/xcat/tools/autotest/testcase/genesis/genesistest.pl -t -n $$CN | ||||
| check:rc==0 | ||||
| cmd:xdsh $$CN "cat /tmp/testresult" | ||||
| check:output=~testimg | ||||
| check:rc==0 | ||||
| cmd:perl /opt/xcat/share/xcat/tools/autotest/testcase/genesis/genesistest.pl  -c -n $$CN -r __GETNODEATTR($$CN,arch)__ | ||||
| check:rc==0 | ||||
| cmd:rpower $$CN boot | ||||
| check:rc==0 | ||||
| end | ||||
							
								
								
									
										124
									
								
								xCAT-test/autotest/testcase/genesis/cmdtest.pl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										124
									
								
								xCAT-test/autotest/testcase/genesis/cmdtest.pl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,124 @@ | ||||
| #!/usr/bin/env perl | ||||
| # IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Getopt::Long; | ||||
| use Data::Dumper; | ||||
| use Term::ANSIColor; | ||||
| use Time::Local; | ||||
| BEGIN | ||||
| { | ||||
|     $::XCATROOT = $ENV{'XCATROOT'} ? $ENV{'XCATROOT'} : -d '/opt/xcat' ? '/opt/xcat' : '/usr'; | ||||
| } | ||||
| use lib "$::XCATROOT/lib/perl"; | ||||
| my $needhelp  = 0; | ||||
| my $rungenesiscmd = 0; | ||||
| my $rungenesisimg = 0; | ||||
| my $shellmode = 0; | ||||
| my $cmdtest="/tmp/cmdtest"; | ||||
| my $genesisdir="/opt/xcat/share/xcat/netboot/genesis/"; | ||||
| my $timesleep = 0; | ||||
| my $runimgtest="/tmp/runme.sh"; | ||||
| if ( | ||||
|     !GetOptions("h|?"  => \$needhelp, | ||||
|                 "c"=>\$rungenesiscmd, | ||||
|                 "i"=>\$rungenesisimg, | ||||
|                 "t"=>\$timesleep, | ||||
|                 "s"=>\$shellmode) | ||||
| ) | ||||
| { | ||||
|     &usage; | ||||
|     exit 1; | ||||
| } | ||||
| sub usage | ||||
| { | ||||
|     print "Usage:run genesis cases.\n"; | ||||
|     print "  genesistest.pl [-?|-h]\n"; | ||||
|     print "  genesistest.pl [-s]  set up genesis in shell mode \n"; | ||||
|     print "  genesistest.pl [-i]  runimg in genesis\n"; | ||||
|     print "\n"; | ||||
|     return; | ||||
| } | ||||
| sub runcmd | ||||
| { | ||||
|     my ($cmd) = @_; | ||||
|     my $rc = 0; | ||||
|     $::RUNCMD_RC = 0; | ||||
|     my $outref = []; | ||||
|     @$outref = `$cmd 2>&1`; | ||||
|     if ($?) | ||||
|     { | ||||
|         $rc = $? ; | ||||
|         $rc = $rc >> 8; | ||||
|         $::RUNCMD_RC = $rc; | ||||
|     } | ||||
|     chomp(@$outref); | ||||
|     return @$outref; | ||||
|  | ||||
| } | ||||
|  | ||||
| sub rungenesiscmd | ||||
| { | ||||
|     `echo "#!/bin/bash">>$cmdtest`;  | ||||
|     `echo "#This is test for genesis scripts">>$cmdtest`; | ||||
|     `echo "echo \"test\" >> $cmdtest">>$cmdtest`; | ||||
|     `chmod 777 $cmdtest`; | ||||
|      if ($ARGV[0] =~ /ppc64/){ | ||||
|          `cp -rf $cmdtest "$genesisdir""ppc64"/fs/bin`; | ||||
|          `mknb ppc64`; | ||||
|           print "mknb ppc64\n"; | ||||
|       }else{ | ||||
|           `cp -rf $cmdtest "$genesisdir""$ARGV[0]"/fs/bin`; | ||||
|           `mknb $ARGV[0]`; | ||||
|            print "mkmn $ARGV[0]\n"; | ||||
|       } | ||||
| } | ||||
| sub rungenesisimg | ||||
| { | ||||
|     my $rc=0; | ||||
|     runcmd("mkdir -p /install/my_image"); | ||||
|     `echo "#!/bin/bash">>$runimgtest`; | ||||
|     `echo "#This is test for genesis scripts">>$runimgtest`; | ||||
|     `echo "echo "test" >> /tmp/cmdtest" >>$runimgtest`; | ||||
|     `chmod +x $runimgtest`; | ||||
|     `cp $runimgtest  /install/my_image`; | ||||
|     `cd /install/my_image ;tar -zcvf my_image.tgz  .`; | ||||
|     ` nodeset $ARGV[0] "runimage=http://$ARGV[1]/install/my_image/my_image.tgz",shell`; | ||||
| } | ||||
| sub timesleep | ||||
| { | ||||
|     my @output = runcmd("ping $ARGV[0] -c 10"); | ||||
|     my $value = 0; | ||||
|     print "output is $value ,@output\n"; | ||||
|     if ($::RUNCMD_RC){ | ||||
|         foreach $value (1 .. 60) { | ||||
|         @output = runcmd("ping $ARGV[0] -c 10"); | ||||
|         last  if ($::RUNCMD_RC == 0); | ||||
|         } | ||||
|      } | ||||
|     my @output1 = runcmd("xdsh $ARGV[0] date"); | ||||
|     if ($::RUNCMD_RC){ | ||||
|         foreach $value (1 .. 60) { | ||||
|         @output1 = runcmd("xdsh $ARGV[0] date"); | ||||
|         last if ($::RUNCMD_RC == 0); | ||||
|         } | ||||
|     } | ||||
|     if ($::RUNCMD_RC == 0){ | ||||
|         print "test ok\n"; | ||||
|      } | ||||
| } | ||||
| if ($rungenesiscmd) | ||||
|    { | ||||
|    &rungenesiscmd; | ||||
|    } | ||||
| if ($timesleep) | ||||
|    { | ||||
|    ×leep; | ||||
|    } | ||||
| if($rungenesisimg) | ||||
|    { | ||||
|    &rungenesisimg; | ||||
|    } | ||||
|  | ||||
|  | ||||
							
								
								
									
										184
									
								
								xCAT-test/autotest/testcase/genesis/genesistest.pl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										184
									
								
								xCAT-test/autotest/testcase/genesis/genesistest.pl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,184 @@ | ||||
| #!/usr/bin/env perl | ||||
| # IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Getopt::Long; | ||||
| use Data::Dumper; | ||||
| use Term::ANSIColor; | ||||
| use Time::Local; | ||||
| use File::Basename; | ||||
| use File::Path; | ||||
| use File::Copy; | ||||
| BEGIN | ||||
| { | ||||
|     $::XCATROOT = $ENV{'XCATROOT'} ? $ENV{'XCATROOT'} : -d '/opt/xcat' ? '/opt/xcat' : '/usr'; | ||||
| } | ||||
| use lib "$::XCATROOT/lib/perl"; | ||||
| my $rungenesiscmd = 0; | ||||
| my $rungenesisimg = 0; | ||||
| my $shellmode = 0; | ||||
| my $cmdtest = "/tmp/cmdtest"; | ||||
| my $timesleep = 0; | ||||
| my $noderange ; | ||||
| my $clearenv = 0; | ||||
| my $arch ; | ||||
| my $imgip ; | ||||
| my $runimgtest = "/tmp/imgtest"; | ||||
| my $testresult = "/tmp/testresult"; | ||||
| my $genesisdir = "/opt/xcat/share/xcat/netboot/genesis"; | ||||
| my $genesisfiledir ; | ||||
|  | ||||
| if ( | ||||
|     !GetOptions("h|?"  => \$::HELP, | ||||
|                 "d"=>\$rungenesiscmd, | ||||
|                 "g"=>\$rungenesisimg, | ||||
|                 "t"=>\$timesleep, | ||||
|                 "c"=>\$clearenv, | ||||
|                 "n=s"=>\$::NODE, | ||||
|                 "i=s"=>\$::IMGIP, | ||||
|                 "r=s"=>\$::ARCH) | ||||
| ) | ||||
| { | ||||
|     &usage; | ||||
|     exit 1; | ||||
| } | ||||
| sub usage | ||||
| { | ||||
|     print "Usage:run for genesis cases.\n"; | ||||
|     print "  genesistest.pl [-?|-h]\n"; | ||||
|     print "  genesistest.pl [-d] [-n node] [-r arch]  Test runcmd for genesis \n"; | ||||
|     print "  genesistest.pl [-g] [-n ndoe] [-i imgip] Test runimg for genesis\n"; | ||||
|     print "  genesistest.pl [-t] [-n node] Sleep for genesis test\n"; | ||||
|     print "  genesistest.pl [-c] [-n node][-r arch] Clear environment for genesis test\n"; | ||||
|     print "\n"; | ||||
|     return; | ||||
| } | ||||
| sub runcmd | ||||
| { | ||||
|     my ($cmd) = @_; | ||||
|     my $rc = 0; | ||||
|     $::RUNCMD_RC = 0; | ||||
|     my $outref = []; | ||||
|     @$outref = `$cmd 2>&1`; | ||||
|     if ($?) | ||||
|     { | ||||
|         $rc = $? ; | ||||
|         $rc = $rc >> 8; | ||||
|         $::RUNCMD_RC = $rc; | ||||
|     } | ||||
|     chomp(@$outref); | ||||
|     return @$outref; | ||||
|  | ||||
| } | ||||
| sub rungenesiscmd | ||||
| { | ||||
|     open(TESTCMD, ">$cmdtest") | ||||
|     or die "Can't open testscripts for writing: $!"; | ||||
|     print TESTCMD join("\n", "#!/bin/bash"), "\n"; | ||||
|     print TESTCMD join("\n", "#This is test for genesis scripts"), "\n"; | ||||
|     print TESTCMD join("\n", "echo \"testcmd\" >> $testresult"), "\n"; | ||||
|     close(TESTCMD); | ||||
|     if ($arch =~ /ppc64/) | ||||
|      { | ||||
|          $arch = "ppc64"; | ||||
|      } | ||||
|      $genesisfiledir="$genesisdir/$arch/fs/bin"; | ||||
|      copy("$cmdtest" ,"$genesisfiledir"); | ||||
|      chmod 0755, "$genesisfiledir/cmdtest"; | ||||
|      `mknb $arch`; | ||||
|      print "mknb $arch\n"; | ||||
| } | ||||
| sub rungenesisimg | ||||
| { | ||||
|     mkdir("/install/my_image"); | ||||
|     open(TESTIMG, ">$runimgtest") | ||||
|     or die "Can't open testscripts for writing: $!"; | ||||
|     print TESTIMG join("\n", "#!/bin/bash"), "\n"; | ||||
|     print TESTIMG join("\n", "#This is test for genesis scripts"), "\n"; | ||||
|     print TESTIMG join("\n", "echo \"testimg\" >> $testresult"), "\n"; | ||||
|     close(TESTIMG); | ||||
|     copy("$runimgtest" ,"/install/my_image/runme.sh" ) or die "Copy failed: $!"; | ||||
|     chmod 0755,"/install/my_image/runme.sh";  | ||||
|     `cd /install/my_image ;tar -zcvf my_image.tgz  .`; | ||||
|     `nodeset $noderange "runimage=http://$imgip/install/my_image/my_image.tgz",shell`; | ||||
| } | ||||
| sub timesleep | ||||
| { | ||||
|     my @output = runcmd("ping $noderange -c 10"); | ||||
|     my $value = 0; | ||||
|     print "output is $value ,@output\n"; | ||||
|     if ($::RUNCMD_RC){ | ||||
|         foreach $value (1 .. 60) { | ||||
|         @output = runcmd("ping $noderange -c 10"); | ||||
|         last  if ($::RUNCMD_RC == 0); | ||||
|         } | ||||
|      } | ||||
|     my @output1 = runcmd("xdsh $noderange date"); | ||||
|     if ($::RUNCMD_RC){ | ||||
|         foreach $value (1 .. 60) { | ||||
|         @output1 = runcmd("xdsh $noderange -t 1 date"); | ||||
|         print "sleep $value\n"; | ||||
|         last if ($::RUNCMD_RC == 0); | ||||
|         } | ||||
|     } | ||||
|     if ($::RUNCMD_RC == 0){ | ||||
|         print "test ok\n"; | ||||
|      } | ||||
| } | ||||
| sub clearenv | ||||
| { | ||||
|    if (-f "/tmp/imgtest"){ | ||||
|        unlink("/install/my_image/runme.sh"); | ||||
|        unlink("/install/my_image/my_image.tgz"); | ||||
|        unlink("$runimgtest"); | ||||
|        rmdir("/install/my_image"); | ||||
|        print "img del ok\n"; | ||||
|    } | ||||
|    if (-f "/tmp/cmdtest"){ | ||||
|       if ($arch =~ /ppc64/) | ||||
|       { | ||||
|          $arch = "ppc64"; | ||||
|       } | ||||
|        | ||||
|       $genesisfiledir="$genesisdir/$arch/fs/bin"; | ||||
|       my $genesisfile = "$genesisfiledir/cmdtest"; | ||||
|       print "genesis file is $genesisfile\n"; | ||||
|       unlink("$genesisfile"); | ||||
|       unlink("$cmdtest"); | ||||
|      `mknb $arch`; | ||||
|      print "mknb $arch\n"; | ||||
|    } | ||||
|    `nodeset $noderange boot`;  | ||||
| } | ||||
| if ($::NODE) | ||||
| { | ||||
|     $noderange = $::NODE;  | ||||
| } | ||||
| if($::ARCH) | ||||
| { | ||||
|    $arch = $::ARCH; | ||||
| } | ||||
| if($::IMGIP) | ||||
| { | ||||
|    $imgip = $::IMGIP; | ||||
| } | ||||
| if ($::HELP) { | ||||
| usage; | ||||
| } | ||||
| if ($rungenesiscmd) | ||||
| { | ||||
|     &rungenesiscmd; | ||||
| } | ||||
| if ($timesleep) | ||||
| { | ||||
|     ×leep; | ||||
| } | ||||
| if($rungenesisimg) | ||||
|    { | ||||
|    &rungenesisimg; | ||||
|    } | ||||
| if($clearenv) | ||||
| { | ||||
|    &clearenv; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user