#!/bin/bash

export TCID=hugepage; export TST_TOTAL=3; export TST_COUNT=1

. run_profile.txt
. $base_dir/plans/commands/common.fns
export PATH=/usr/local/bin:$PATH

tst_resm TINFO "BEGIN PACKAGE $TCID"
# Check needed vars from run_profile.txt
[ ! -d "$run_dir" ] && tst_resm TCONF "ERROR: $run_dir does not exist" && exit -10

SUT=`hostname -s`
tst_resm TINFO "Running hugepage on SUT: $SUT"

log_dir="$run_dir/test_output"
mkdir -p $log_dir

# fix hugetlbfs mount point, mount it if not mounted, set sysctl values

if [ ! -d /mnt/hugetlbfs ]; then
	mkdir -p /mnt/hugetlbfs
fi

if ! grep hugetlbfs /proc/mounts ; then
	mount -t hugetlbfs hugetlbfs /mnt/hugetlbfs
	sts=$?
	if [ $sts != 0 ]; then
		tst_resm TCONF "mount hugetlbfs failed"
		exit $sts
	fi
fi

echo 268435456 > /proc/sys/kernel/shmmax
echo 4194304 > /proc/sys/kernel/shmall
echo 300 > /proc/sys/vm/nr_hugepages

cwd=`/bin/pwd`
tst_resm TINFO "cwd: $cwd"

cmdtest1="./hugepage-mmap"
cmdtest2="./hugepage-shm"
cmdtest3="./huge-mmap 1000 4"

run_test "hugepage" "/usr/bin/time $cmdtest1" "$log_dir" "hugepage1.log"
tst_status $? $cmdtest1

TST_COUNT=2
run_test "hugepage" "/usr/bin/time $cmdtest2" "$log_dir" "hugepage2.log"
tst_status $? $cmdtest2

TST_COUNT=3
run_test "hugepage" "/usr/bin/time $cmdtest3" "$log_dir" "hugepage3.log"
tst_status $? $cmdtest3

tst_resm TINFO fini
exit 0
