mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-20 03:43:51 +00:00
Specifically, rename the following subdirectories of the test directory:
old dir name new dir name
analysis/ext analysis_external
analysis/ctgc analysis_ctgc
analysis/excp analysis_excp
analysis/table analysis_table
analysis/trail analysis_trail
invalid/purity invalid_purity
analysis/sharing analysis_sharing
hard_coded/purity purity
general/accumulator accumulator
analysis/unused_args analysis_unused_args
debugger/declarative declarative_debugger
hard_coded/exceptions exceptions
general/string_format string_format
hard_coded/sub-modules submodules
hard_coded/typeclasses typeclasses
general/structure_reuse structure_reuse
Some subdirectories are still there, to wit, the subdirs of the inactive
test directory stm, each of which (if I remember correctly) holds only one
test case.
The general/structure_reuse directory previously wasn't enabled; I think
this was a bug.
tests/Mmakefile:
tools/bootcheck:
List the new test directories.
tests/Mmake.common:
The analysis_* directories each need to know whether the workspace
uses subdirs. This used to be controlled from one place,
analysis/Mmakefile, but since analysis_* are not subdirs of analysis,
we need a new central place to find this out.
tests/analysis/common.sh:
Update documentation for the move.
tests/OLDDIRS/Mmakefile:
Set the subdir list to empty.
tests/NEWDIRS/Mmakefile:
Update the "this" directory's name, as well as TESTS_DIR.
In analysis_*/Mmakefile, use the new mechanism for detecting the presence
of subdirs.
70 lines
1.9 KiB
Bash
Executable File
70 lines
1.9 KiB
Bash
Executable File
#!/bin/sh
|
|
# vim: ft=sh ts=8 sts=4 sw=4 et
|
|
#-----------------------------------------------------------------------------#
|
|
# Test structure sharing analysis with intermodule analysis framework.
|
|
|
|
. ../analysis/common.sh
|
|
|
|
set -e
|
|
set -x
|
|
|
|
rm -rf Mercury
|
|
|
|
: Step 1
|
|
|
|
cat sharing_m1.m.no_share > sharing_m1.m
|
|
$MMCMAKE sharing_m1.analyse --analysis-repeat 0 || failed
|
|
|
|
check_result sharing_m1 'sharing.*aaa.* t,'
|
|
check_result sharing_m1 'sharing.*aaa2.* b,'
|
|
check_result sharing_m2 'sharing.*bbb.* t,'
|
|
check_result sharing_m3 'sharing.*ccc.* b,'
|
|
check_statuses 'suboptimal.suboptimal.optimal.'
|
|
check_no_requests
|
|
|
|
: Step 2
|
|
|
|
$MMCMAKE sharing_m1.analyse --analysis-repeat 3 || failed
|
|
|
|
check_result sharing_m1 'sharing.*aaa.* b,'
|
|
check_result sharing_m1 'sharing.*aaa2.* b,'
|
|
check_result sharing_m2 'sharing.*bbb.* b,'
|
|
check_result sharing_m3 'sharing.*ccc.* b,'
|
|
check_statuses 'optimal.optimal.optimal.'
|
|
check_no_requests
|
|
check_imdg sharing_m2 'sharing_m1.*sharing.*bbb'
|
|
check_imdg sharing_m3 'sharing_m2.*sharing.*ccc'
|
|
check_imdg sharing_m1 'sharing_m3.*sharing.*aaa2'
|
|
|
|
: Step 3
|
|
|
|
sleep 1
|
|
cat sharing_m1.m.share > sharing_m1.m
|
|
$MMCMAKE sharing_m1.analyse --analysis-repeat 0 || failed
|
|
|
|
check_result sharing_m1 'sharing.*aaa.*cel.*\[\].*cel.*\[\]'
|
|
check_result sharing_m1 'sharing.*aaa2.*cel.*\[\].*cel.*\[\]'
|
|
check_result sharing_m2 'sharing.*bbb.*cel.*\[\].*cel.*\[\]'
|
|
check_result sharing_m3 'sharing.*ccc.*cel.*\[\].*cel.*\[\]'
|
|
check_statuses 'optimal.optimal.optimal.'
|
|
check_no_requests
|
|
|
|
: Step 4
|
|
|
|
sleep 1
|
|
cat sharing_m1.m.no_share > sharing_m1.m
|
|
$MMCMAKE sharing_m1.analyse --analysis-repeat 3 || failed
|
|
|
|
check_result sharing_m1 'sharing.*aaa.* b,'
|
|
check_result sharing_m1 'sharing.*aaa2.* b,'
|
|
check_result sharing_m2 'sharing.*bbb.* b,'
|
|
check_result sharing_m3 'sharing.*ccc.* b,'
|
|
check_statuses 'optimal.optimal.optimal.'
|
|
check_no_requests
|
|
|
|
: Succeeded
|
|
|
|
exit 0
|
|
|
|
#-----------------------------------------------------------------------------#
|