#!/bin/sh

# This is the testsuite for GNU Midnight Commander.
# Maintainer doing the release must ensure that this testsuite passes.

set -e

# Specify which warnings we want to see.
# Don't add options that produce massive warnings.
# Add -Wstrict-prototypes after main.h is fixed (always use cpanel).
# Maybe add -W if a better way to initialize quick dialogs is found.
export CFLAGS="-O2 -Wall -Wno-unused-parameter -Wno-sign-compare \
 -Wmissing-declarations -Wmissing-prototypes -Wbad-function-cast \
 -Wcast-align -Wpointer-arith -Wredundant-decls -Wundef -Wfloat-equal"

echo "Checking the documentation"
maint/doctest

echo "Bootstraping from CVS"
./autogen.sh >test-autogen.out 2>test-autogen.err

echo "Checking configure"
bash -n configure 2>test-configure.err

echo "Making everything in the source directory"
make all >test0.out 2>test0.err

echo "Checking the default configuration"
make distcheck >test1.out 2>test1.err

echo "Checking the configuration with maximal code coverage"
make distcheck with_screen=mcslang enable_charset=yes with_samba=yes \
     with_tm_x_support=yes with_mcfs=yes with_included_gettext=yes \
     >test2.out 2>test2.err

echo "Checking the configuration with minimal code coverage"
make distcheck enable_largefile=no enable_nls=no with_vfs=no \
     with_gpm_mouse=no with_subshell=no with_edit=no with_ext2undel=no \
     with_screen=ncurses >test3.out 2>test3.err

echo "Checking the configuration with minimal code coverage + editor"
make distcheck enable_largefile=no enable_nls=no with_vfs=no \
     with_gpm_mouse=no with_subshell=no with_ext2undel=no \
     with_screen=ncurses >test4.out 2>test4.err

echo "Checking the configuration with experimental and rarely used options"
make distcheck with_screen=mcslang with_termcap=yes \
     with_mmap=no with_subshell=optional >test5.out 2>test5.err

if test -x /usr/bin/rpmbuild; then
	echo "Building RPM package"
	/usr/bin/rpmbuild -ta mc-*.tar.gz >test-rpm.out 2>test-rpm.err
else
	echo "rpmbuild not found"
fi

echo "All done.  No fatal errors.  Please check test*.err files."
