#!/bin/bash

# This file is part of util-linux.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This file is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

TS_TOPDIR="${0%/*}/../.."
TS_DESC="to binary"

. $TS_TOPDIR/functions.sh
ts_init "$*"

. "$TS_SELF/utmp_functions.sh"
[ $SIZEOF_UTMP -eq 384 ] || ts_skip "utmp struct size $SIZEOF_UTMP"

export LANG=C
export TZ=Asia/Tokyo
OUTFILE=${TS_OUTDIR}/${TS_TESTNAME}.file
$TS_CMD_UTMPDUMP -r $TS_SELF/txt-b >| $OUTFILE 2>/dev/null
if diff -q $TS_SELF/wtmp-b.$BYTE_ORDER $OUTFILE; then
	echo "no diff"
fi > $TS_OUTPUT 2>&1

ts_finalize
