xref: /illumos-gate/usr/src/test/libc-tests/tests/printf-intmax/printf-intmax.ksh (revision 15bc9d2e3c060641e4e049885e76eb22ee913eec)
181e874d2SHans Rosenfeld#! /usr/bin/ksh
281e874d2SHans Rosenfeld#
381e874d2SHans Rosenfeld# This file and its contents are supplied under the terms of the
481e874d2SHans Rosenfeld# Common Development and Distribution License ("CDDL"), version 1.0.
581e874d2SHans Rosenfeld# You may only use this file in accordance with the terms of version
681e874d2SHans Rosenfeld# 1.0 of the CDDL.
781e874d2SHans Rosenfeld#
881e874d2SHans Rosenfeld# A full copy of the text of the CDDL should have accompanied this
981e874d2SHans Rosenfeld# source.  A copy of the CDDL is also available via the Internet at
1081e874d2SHans Rosenfeld# http://www.illumos.org/license/CDDL.
1181e874d2SHans Rosenfeld#
1281e874d2SHans Rosenfeld
1381e874d2SHans Rosenfeld#
1481e874d2SHans Rosenfeld# Copyright 2025 Hans Rosenfeld
1581e874d2SHans Rosenfeld#
1681e874d2SHans Rosenfeld
1781e874d2SHans Rosenfeldunalias -a
1881e874d2SHans Rosenfeldexport LANG=C.UTF-8
1981e874d2SHans Rosenfeldexport LC_ALL=C.UTF-8
2081e874d2SHans Rosenfeld
2181e874d2SHans RosenfeldFAILED=0
2281e874d2SHans Rosenfeld
2381e874d2SHans Rosenfeldcleanup ()
2481e874d2SHans Rosenfeld{
2581e874d2SHans Rosenfeld    rm -f ${TEMP}/c{89,99}.exp
2681e874d2SHans Rosenfeld    rm -f ${TEMP}/c99.{32,64}
2781e874d2SHans Rosenfeld    rm -f ${TEMP}/c89
2881e874d2SHans Rosenfeld    rmdir ${TEMP}
2981e874d2SHans Rosenfeld}
3081e874d2SHans Rosenfeld
3181e874d2SHans Rosenfeldcompare ()
3281e874d2SHans Rosenfeld{
3381e874d2SHans Rosenfeld    if cmp -s ${TEMP}/$1 ${TEMP}/$2; then
3481e874d2SHans Rosenfeld        echo "$2 test passed"
3581e874d2SHans Rosenfeld    else
3681e874d2SHans Rosenfeld        FAILED=1
3781e874d2SHans Rosenfeld        echo "$2 test failed" >2
3881e874d2SHans Rosenfeld        diff -u ${TEMP}/$1 ${TEMP}/$2
3981e874d2SHans Rosenfeld    fi
4081e874d2SHans Rosenfeld}
4181e874d2SHans Rosenfeld
4281e874d2SHans RosenfeldTESTS=/opt/libc-tests/tests
4381e874d2SHans RosenfeldTEMP=$(mktemp -d -t intmax)
4481e874d2SHans Rosenfeld
4581e874d2SHans Rosenfeld[[ -z "${TEMP}" ]] && exit 1
4681e874d2SHans Rosenfeld
4781e874d2SHans Rosenfeldtrap cleanup EXIT
4881e874d2SHans Rosenfeld
4981e874d2SHans Rosenfeldcat >${TEMP}/c89.exp <<EOF
5081e874d2SHans Rosenfeldlong long: 0xffffffffffffffff
5181e874d2SHans Rosenfeldintmax_t: 0xffffffff
5281e874d2SHans RosenfeldEOF
5381e874d2SHans Rosenfeld
5481e874d2SHans Rosenfeld(( $? != 0 )) && exit 1
5581e874d2SHans Rosenfeld
5681e874d2SHans Rosenfeldcat >${TEMP}/c99.exp <<EOF
5781e874d2SHans Rosenfeldlong long: 0xffffffffffffffff
5881e874d2SHans Rosenfeldintmax_t: 0xffffffffffffffff
5981e874d2SHans RosenfeldEOF
6081e874d2SHans Rosenfeld
6181e874d2SHans Rosenfeld(( $? != 0 )) && exit 1
6281e874d2SHans Rosenfeld
6381e874d2SHans Rosenfeld${TESTS}/printf-intmax.32 >${TEMP}/c99.32
6481e874d2SHans Rosenfeld${TESTS}/printf-intmax.64 >${TEMP}/c99.64
6581e874d2SHans Rosenfeld${TESTS}/printf-intmax.c89 >${TEMP}/c89
6681e874d2SHans Rosenfeld
6781e874d2SHans Rosenfeldcompare c89.exp c89
6881e874d2SHans Rosenfeldcompare c99.exp c99.32
6981e874d2SHans Rosenfeldcompare c99.exp c99.64
7081e874d2SHans Rosenfeld
7181e874d2SHans Rosenfeld(( FAILED != 0 )) && exit 1
7281e874d2SHans Rosenfeld
73*15bc9d2eSDan McDonaldexit 0
74