[ "$exp_val" == "$imp_val" ] ||
error "export flags '$exp_val' != import flags '$imp_val'"
- # Compare the value of client version
+ # Compare client versions. Only compare top-3 fields for compatibility
exp_client_version=$(awk '/target_version:/ { print $2 }' $temp_exp)
- exp_val=$(version_code $exp_client_version)
- imp_val=$CLIENT_VERSION
+ exp_val=$(version_code $(cut -d. -f1,2,3 <<<$exp_client_version))
+ imp_val=$(version_code $(lustre_build_version client | cut -d. -f1,2,3))
[ "$exp_val" == "$imp_val" ] ||
- error "export client version '$exp_val' != '$imp_val'"
+ error "exp version '$exp_client_version'($exp_val) != " \
+ "'$(lustre_build_version client)'($imp_val)"
}
run_test 0d "check export proc ============================="
# Return a numeric version code based on a version string. The version
# code is useful for comparison two version strings to see which is newer.
version_code() {
- # split arguments like "1.8.6-wc3" into "1", "8", "6", "wc3"
- eval set -- $(tr "[:punct:]" " " <<< $*)
+ # split arguments like "1.8.6-wc3" into "1", "8", "6", "3"
+ eval set -- $(tr "[:punct:][a-z]" " " <<< $*)
- echo -n $(((${1:-0} << 16) | (${2:-0} << 8) | ${3:-0}))
+ echo -n $(((${1:-0}<<24) | (${2:-0}<<16) | (${3:-0}<<8) | (${4:-0})))
}
export LINUX_VERSION=$(uname -r | sed -e "s/\([0-9]*\.[0-9]*\.[0-9]*\).*/\1/")