 cd732ac14f
			
		
	
	cd732ac14f
	
	
	
		
			
			maxscale-system-test changed in order to control test environment by itself. Every test checks which machines are running, compare with list of needed machines and start new VMs is they are missing in the running machines list. Tests are executiong MDBCI commands, MDBCI executable should be in the PATH
		
			
				
	
	
		
			99 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| 
 | |
| user=$maxscale_user
 | |
| password=$maxscale_password
 | |
| 
 | |
| # See cnf/maxscale.cnf.template.cache_basic
 | |
| port=4008
 | |
| # Ensure that these are EXACTLY like the corresponding values
 | |
| # in cnf/maxscale.cnf.template.cache_basic
 | |
| soft_ttl=5
 | |
| hard_ttl=10
 | |
| 
 | |
| function run_test
 | |
| {
 | |
|     local test_name=$1
 | |
| 
 | |
|     echo $test_name
 | |
|     logdir=log_$test_name
 | |
|     mkdir -p $logdir
 | |
|     mysqltest --host=${maxscale_000_network} --port=$port \
 | |
|               --user=$user --password=$password \
 | |
|               --logdir=$logdir \
 | |
|               --test-file=$dir/t/$test_name.test \
 | |
|               --result-file=$dir/r/$test_name.result \
 | |
|               --silent
 | |
| 
 | |
|     if [ $? -eq 0 ]
 | |
|     then
 | |
|         echo " OK"
 | |
| 	    rc=0
 | |
|     else
 | |
|         echo " FAILED"
 | |
|         rc=1
 | |
|     fi
 | |
| 
 | |
|     return $rc
 | |
| }
 | |
| 
 | |
| export dir="$src_dir/cache/$1"
 | |
| 
 | |
| source=$src_dir/cache/$1/cache_rules.json
 | |
| target=${maxscale_000_whoami}@${maxscale_000_network}:/home/${maxscale_000_whoami}/cache_rules.json
 | |
| 
 | |
| if [ ${maxscale_000_network} != "127.0.0.1" ] ; then
 | |
|    scp -i ${maxscale_000_keyfile} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null $source $target
 | |
| else
 | |
|    cp $source /home/${maxscale_000_whoami}/cache_rules.json
 | |
| fi
 | |
| 
 | |
| if [ $? -ne 0 ]
 | |
| then
 | |
|     echo "error: Could not copy rules file to maxscale host."
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| echo $source copied to $target, restarting Maxscale
 | |
| 
 | |
| ssh  -i $maxscale_000_keyfile -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${maxscale_000_whoami}@${maxscale_000_network} 'sudo service maxscale restart'
 | |
| 
 | |
| # We sleep slightly longer than the TTL to ensure that the TTL mechanism
 | |
| # kicks in.
 | |
| let seconds=$soft_ttl+2
 | |
| 
 | |
| run_test create || exit 1
 | |
| run_test insert1 || exit 1
 | |
| # We should now get result 1, as this is the first select.
 | |
| run_test select1 || exit 1
 | |
| 
 | |
| run_test update2 || exit 1
 | |
| # We should now get result 1, as ttl has NOT passed.
 | |
| run_test select1 || exit 1
 | |
| 
 | |
| echo "Sleeping $seconds"
 | |
| sleep $seconds
 | |
| # We should now get result 2, as soft ttl has PASSED.
 | |
| run_test select2 || exit 1
 | |
| 
 | |
| run_test update3 || exit 1
 | |
| # We should now get result 2, as ttl has NOT passed.
 | |
| run_test select2 || exit 1
 | |
| 
 | |
| echo "Sleeping $seconds"
 | |
| sleep $seconds
 | |
| # We should now get result 3, as soft ttl has PASSED.
 | |
| run_test select3 || exit 1
 | |
| 
 | |
| run_test delete || exit 1
 | |
| # We should now get result 3, as soft ttl has NOT passed.
 | |
| run_test select3 || exit 1
 | |
| 
 | |
| echo "Sleeping $seconds"
 | |
| sleep $seconds
 | |
| # We should now get result 0, as soft ttl has PASSED.
 | |
| run_test select0 || exit 1
 | |
| 
 | |
| # Cleanup
 | |
| run_test drop || exit 1
 |