Results of `make check' in libstdc++-v3 in gcc mainline for FreeBSD

Loren James Rittle rittle@latour.rsch.comm.mot.com
Tue Apr 25 19:36:00 GMT 2000


In article < 200004250555.AAA86950@latour.rsch.comm.mot.com >,
Loren James Rittle <rittle> writes:

> Including the four patches I just posted, here are the results for
> `make check' in libstdc++-v3 in gcc mainline for FreeBSD.
...
> pass/fail results:  68/1
...

Oops, the results aren't that rosy: mkcheck and FreeBSD disagreed as
to how to find a core dump situation.  Wouldn't it be better to use
the standard [ba]sh mechanism ($? > 128 or just $? != 0) to check for
abnormal termination events?  (A patch is included at the end of this
message.)

Here are the real results (with patch) [looks like more work is
required on the config/generic tree since 10 of the 12 run-time faults
occurred at config/generic/bits/ctype_specializations.h:40 - I will
work on that but won't get to it until next week]:

host: FreeBSD 3.4-STABLE FreeBSD 3.4-STABLE #1: Tue Mar  7 20:58:44 CST 2000     root@latour.rsch.comm.mot.com:/usr/src/sys/compile/LATOUR  i386
compiler: 2.96
compiler flags: -g -DDEBUG_ASSERT  -static
date: 20000425
pass/fail results:  56/13
p == pass/fail execution test
ctime == time to compile and link
etime == time for executable to run (take with salt)
text == size of the executable text section
data == size of the executable data section
total == size of the executable

p ctime	etime	text	data	total	name	
+ 0	0.003	32524	3248	54144	17_intro/header_ciso646.cc

+ 3	0.003	796	2372	111208	17_intro/header_fstream.cc

+ 2	0.003	796	2372	93065	17_intro/header_iomanip.cc

+ 2	0.003	796	2372	63654	17_intro/header_ios.cc

+ 0	0.003	796	2364	7242	17_intro/header_iosfwd.cc

+ 2	0.003	208519	8389	1530034	17_intro/header_iostream.cc

+ 2	0.003	796	2372	90648	17_intro/header_istream.cc

+ 1	0.003	796	2372	63736	17_intro/header_ostream.cc

+ 2	0.003	796	2372	91351	17_intro/header_sstream.cc

+ 2	0.003	796	2372	63516	17_intro/header_streambuf.cc

+ 8	0.003	208519	8389	1576932	17_intro/headers.cc

+ 1	0.003	50839	3844	196050	18_support/numeric_limits.cc

+ 3	0.004	65863	4480	381426	21_strings/append.cc

+ 5	0.003	72103	4192	382711	21_strings/capacity.cc

+ 2	0.003	56151	4096	288114	21_strings/char_traits.cc

+ 3	0.003	60599	4160	302288	21_strings/compare.cc

+ 3	0.004	61847	4192	315451	21_strings/ctor_copy_dtor.cc

+ 2	0.003	56871	4224	293420	21_strings/element_access.cc

+ 2	0.003	61399	4064	355816	21_strings/find.cc

+ 3	0.011	63975	4672	321364	21_strings/insert.cc

- 7	0.009	224903	10181	1706430	21_strings/inserters_extractors.cc

+ 3	0.003	64839	4224	319476	21_strings/invariants.cc

+ 3	0.003	69639	4224	324750	21_strings/nonmember.cc

+ 3	0.003	58071	4096	297597	21_strings/operations.cc

+ 3	0.003	63879	4160	324502	21_strings/replace.cc

+ 3	0.003	58279	4160	301927	21_strings/substr.cc

+ 3	0.003	209527	8485	1523204	22_locale/ctype.cc

- 3	0.009	210551	8709	1520436	22_locale/ctype_char_members.cc

+ 4	0.003	63735	4256	373489	23_containers/bitset_ctor.cc

+ 6	0.866	76407	4160	417817	23_containers/bitset_shift.cc

+ 4	0.000	215735	8389	1601592	23_containers/multiset.cc

+ 2	0.003	57991	3904	238571	23_containers/vector_capacity.cc

+ 5	0.012	238199	8581	1627418	23_containers/vector_ctor.cc

+ 2	0.003	63831	3904	281896	23_containers/vector_modifiers.cc

+ 5	0.003	216455	8997	1574788	24_iterators/istreambuf_iterator.cc

+ 6	0.003	82247	4064	473707	24_iterators/iterator.cc

+ 1	0.003	32825	3256	69054	25_algorithms/min_max.cc

+ 6	0.000	213239	8389	1650452	26_numerics/binary_closure.cc

+ 0	0.003	1209	2364	11076	26_numerics/buggy_complex.cc

+ 0	0.003	40411	4780	66746	26_numerics/c_math.cc

- 6	0.003	0	0	0	26_numerics/complex_inserters_extractors.cc

+ 3	0.003	50295	3736	208285	26_numerics/valarray.cc

- 5	0.000	220519	8933	1574347	27_io/filebuf.cc

+ 2	0.003	34879	3248	117642	27_io/fpos.cc

+ 4	0.003	214119	8901	1583700	27_io/ios_base_callbacks.cc

+ 3	0.003	212263	8837	1552178	27_io/ios_base_members_static.cc

+ 4	0.003	213911	8805	1578503	27_io/ios_ctor.cc

+ 6	777.000	215815	9029	1596421	27_io/ios_manip_basefield.cc

+ 6	0.000	216423	9061	1609721	27_io/ios_manip_fmtflags.cc

+ 3	0.004	212551	8709	1534490	27_io/ios_members.cc

+ 8	0.000	209015	8453	1601658	27_io/iostream_objects.cc

+ 0	0.003	796	2364	5400	27_io/istream.cc

- 7	0.009	222263	9829	1625122	27_io/istream_extractor_arith.cc

- 5	0.009	219255	9125	1594755	27_io/istream_extractor_char.cc

- 5	0.009	219063	9125	1600338	27_io/istream_extractor_other.cc

- 4	0.067	215367	9221	1610831	27_io/istream_manip.cc

- 5	0.009	212343	8901	1580411	27_io/istream_sentry.cc

- 7	0.010	235191	9765	1617292	27_io/istream_unformatted.cc

- 5	0.009	213415	9061	1568155	27_io/istringstream_members.cc

+ 0	0.003	796	2364	5400	27_io/ostream.cc

- 7	1.200	224839	9541	1640905	27_io/ostream_inserter_arith.cc

+ 7	0.169	222487	9637	1638713	27_io/ostream_inserter_char.cc

- 5	0.009	214487	9445	1597468	27_io/ostream_inserter_other.cc

+ 5	0.003	213303	8965	1589811	27_io/ostream_manip.cc

+ 4	0.003	211687	8997	1556620	27_io/ostream_unformatted.cc

+ 4	0.004	219751	9029	1569878	27_io/streambuf.cc

+ 6	0.004	229143	8997	1605467	27_io/stringbuf.cc

+ 6	0.004	216167	9381	1612367	27_io/stringstream.cc

+ 6	0.003	208519	8549	1603783	ext/headers.cc

2000-04-25  Loren J. Rittle  <ljrittle@acm.org>

	* mkcheck.in: Rely on exit status instead of the presence of a
	core file.  Added comments on how/where to save core and exe
	files.  Move shell wildcards outside quotes and fix core path.

Index: mkcheck.in
===================================================================
RCS file: /cvs/gcc/egcs/libstdc++-v3/mkcheck.in,v
retrieving revision 1.2
diff -p -r1.2 mkcheck.in
*** mkcheck.in	2000/04/25 07:41:28	1.2
--- mkcheck.in	2000/04/26 02:16:03
*************** if [ ! -x "$TEST_DIR/printnow" ]; then
*** 124,132 ****
  fi
  
  # Remove old executables.
! rm -rf "$TEST_DIR/*exe"
! rm -rf "$TEST_DIR/core" "$TEST_DIR/*core"
  
  # Copy over the data files for filebufs in read-only mode
  cp $SRC_DIR/testsuite/27_io/*.txt $TEST_DIR
  cp $SRC_DIR/testsuite/27_io/*.tst $TEST_DIR
--- 124,134 ----
  fi
  
  # Remove old executables.
! rm -rf "$TEST_DIR"/*exe
  
+ # Remove old core files (which now get left in cwd, not $TEST_DIR).
+ rm -rf ./*core
+ 
  # Copy over the data files for filebufs in read-only mode
  cp $SRC_DIR/testsuite/27_io/*.txt $TEST_DIR
  cp $SRC_DIR/testsuite/27_io/*.tst $TEST_DIR
*************** do
*** 202,217 ****
          # Actually run the executable and time it . . .
          TIMEFORMAT='timemark %R'
          E_TIME_TEXT="$(exec 2>&1; time $ST_NAME)"
          E_TIME="$(echo $E_TIME_TEXT | awk '{print $2}')"
          # joining those two commands does not work due to quoting problems:
          #E_TIME="$(exec 2>&1; time $ST_NAME | awk '{print $2}')"
          # this will work as a fallback on certain systems...?
          #E_TIME=$(exec 2>&1; time $ST_NAME | cut -d ' ' -f 2)
   
! 	if [ -f core ]; then
  	    ST_EXEC='-'
  	    echo "st_fail" | awk '{printf("\t%s\n", $1)}'
! 	    rm core
  	else
  	    # XXX this should probably be a function? 
  
--- 204,224 ----
          # Actually run the executable and time it . . .
          TIMEFORMAT='timemark %R'
          E_TIME_TEXT="$(exec 2>&1; time $ST_NAME)"
+ 	E_ABNORMAL_TERMINATION=$?
          E_TIME="$(echo $E_TIME_TEXT | awk '{print $2}')"
          # joining those two commands does not work due to quoting problems:
          #E_TIME="$(exec 2>&1; time $ST_NAME | awk '{print $2}')"
          # this will work as a fallback on certain systems...?
          #E_TIME=$(exec 2>&1; time $ST_NAME | cut -d ' ' -f 2)
   
! 	if [ "$E_ABNORMAL_TERMINATION" -ne 0 ]; then
  	    ST_EXEC='-'
  	    echo "st_fail" | awk '{printf("\t%s\n", $1)}'
! 	    rm -f ./*core
! 	    # sometimes you want to save all core files for review:
! 	    #mv ./core $ST_NAME.core
! 	    # sometimes the OS names core files as programname.core:
! 	    #mv ./*core $ST_NAME.core
  	else
  	    # XXX this should probably be a function? 
  
*************** do
*** 258,270 ****
  			rm $DIFF_FILE
  		    done
  		else
! 		    # the file does no output, and didn't core, so
! 		    # assume passed.
  		    ST_EXEC="+"
  		    echo "st_pass" | awk '{printf("\t%s\t", $1)}'
  		fi
  	    fi
  	rm "$ST_NAME"
      else
          # the file did not compile. Write out compilation info to the log file.
  	echo "$CXX $CXX_FLAG $ST_FLAG $INC_PATH $LIB_PATH $CNAME -o $ST_NAME" \
--- 265,281 ----
  			rm $DIFF_FILE
  		    done
  		else
! 		    # the file does no output, and didn't abnormally
! 		    # terminate, so assume passed.
  		    ST_EXEC="+"
  		    echo "st_pass" | awk '{printf("\t%s\t", $1)}'
  		fi
  	    fi
  	rm "$ST_NAME"
+ 	# sometimes you want to save all failing exe files for review:
+ 	#if [ "$ST_EXEC" = "+" ]; then
+ 	#    rm "$ST_NAME"
+ 	#fi
      else
          # the file did not compile. Write out compilation info to the log file.
  	echo "$CXX $CXX_FLAG $ST_FLAG $INC_PATH $LIB_PATH $CNAME -o $ST_NAME" \


More information about the Libstdc++ mailing list