1#!/bin/bash -f 2 3# Build lowmem exhaustion/corruption tester 4 5# Copyright (C) 2003-2006 IBM 6# 7# This program is free software; you can redistribute it and/or 8# modify it under the terms of the GNU General Public License as 9# published by the Free Software Foundation; either version 2 of the 10# License, or (at your option) any later version. 11# 12# This program is distributed in the hope that it will be useful, but 13# WITHOUT ANY WARRANTY; without even the implied warranty of 14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15# General Public License for more details. 16# 17# You should have received a copy of the GNU General Public License 18# along with this program; if not, write to the Free Software 19# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 20# 02111-1307, USA. 21 22 23# How much RAM do we have? 24RAM=`cat /proc/meminfo | grep MemTotal | awk -F " " '{print $2}'` 25SPACE_REQUIRED=`expr $RAM \* 2` 26 27# Do we have enough space? 28MEMTESTDIR="$POUNDER_TMPDIR/memtest/" 29rm -rf "$MEMTESTDIR" 30mkdir -p "$MEMTESTDIR" 31FREE_SPACE=`df -k -P "$MEMTESTDIR" | tail -n 1 | awk -F " " '{print $4}'` 32if [ "$FREE_SPACE" -lt "$SPACE_REQUIRED" ]; then 33 echo "[memtest] Insufficient space. Free space: $FREE_SPACE kB. Space required: $SPACE_REQUIRED kB. Not building memtest." 34 exit -1 35fi 36 37cd "$POUNDER_OPTDIR" 38 39# Download a script and parse out the junk we don't want. 40if [ ! -f "memtest.sh" ]; then 41 if [ $USE_CACHE -eq 1 ]; then 42 wget "${POUNDER_CACHE}memtest.shtml" 43 fi 44 if [ ! -f "memtest.shtml" ]; then 45 wget "http://people.redhat.com/dledford/memtest.shtml" 46 fi 47 IN_BLOCK=0 48 49 if [ ! -f "memtest.shtml" ]; then 50 echo "[memtest] Could not download memtest.shtml. Aborting!" 51 exit -1 52 fi 53 54 (cat memtest.shtml | while read f; do 55 echo "$f" | grep -q BLOCKQUOTE 56 if [ "$?" -eq 0 ]; then 57 if [ "$IN_BLOCK" -eq 0 ]; then 58 IN_BLOCK=1 59 else 60 IN_BLOCK=0 61 fi 62 else 63 if [ "$IN_BLOCK" -eq 1 ]; then 64 echo "$f" 65 fi 66 fi 67 done) | sed -e 's/\/bin\/bash2/\/bin\/bash/g' > memtest.sh 68 chmod a+x memtest.sh 69 patch -p0 < "$POUNDER_SRCDIR/memtest.patch" 70 rm -rf memtest.shtml 71fi 72