[GRASS5] testsuite with dejagnu

Hi,

i checked in a testsuite with dejagnu into CVS (for details see my
announcement some time ago and the README file in the directory).

I hope to extend the test scripts in the next time.

You can run the tests with 'make check' (Needs a long time to
complete!), but you first must install dejagnu and compile the source.

One problem that i encountered is that some modules are only
interactive, without a commandline version (and even do not echo a usage
info with invalid commandline!). I had no time to investigate each of
the >300 modules, but i think that some standardization is needed.

Another problem is that the make install process repeats the html to man
conversion every time it is invoked, there seems to be no status
information on the build process.

Please tell me any improvements,

Andreas
--
Andreas Lange, 65187 Wiesbaden, Germany, Tel. +49 611 807850
Andreas.Lange@Rhein-Main.de - A.C.Lange@GMX.net

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

On Mon, Oct 23, 2000 at 11:28:08PM +0200, Andreas Lange wrote:

Hi,

i checked in a testsuite with dejagnu into CVS (for details see my
announcement some time ago and the README file in the directory).

I hope to extend the test scripts in the next time.

You can run the tests with 'make check' (Needs a long time to
complete!), but you first must install dejagnu and compile the source.

Small hint: You have to install "expect", too.

One problem that i encountered is that some modules are only
interactive, without a commandline version (and even do not echo a usage
info with invalid commandline!). I had no time to investigate each of
the >300 modules, but i think that some standardization is needed.

Yesterday I have fixed that, Andreas. Some modules had to be put into
BIN_MAIN_INTER instead of BIN_MAIN_CMD. Now they echo that they are
interactive modules (hope I didn't miss one).

Another problem is that the make install process repeats the html to man
conversion every time it is invoked, there seems to be no status
information on the build process.

Here we need something. Probably a timestamp comparison.

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Markus Neteler wrote:

> Another problem is that the make install process repeats the html to man
> conversion every time it is invoked, there seems to be no status
> information on the build process.
Here we need something. Probably a timestamp comparison.

Make should do the comparison automatically. The trick is
in the proper setup of the rules to perform the conversion.
Something like the following:

#######################################
# process the html pages into man pages
%.man: %.html
  html2man $< > $@

# make sure the man directory exists
$(GRASS_MANDIR):
  test -d $(GRASS_MANDIR) || mkdir -p $(GRASS_MANDIR)

# copy the man pages
$(GRASS_MANDIR)/%:% $(GRASS_MANDIR)
  cp $< $@
#######################################

The trick is in specifying the dependency of the man page
on the html page, and not just blindly executing the
html2man process.

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

--
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+
| Eric B. Mitchell mailto:emitchell@altaira.com |
| tel: (301) 809 - 3534 Altair Aerospace Corporation |
| tel: (800) 7 - ALTAIR 4201 Northview Dr. Suite 410 |
| fax: (301) 805 - 8122 Bowie, MD 20716 |
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+
              ,___
          /"\ / o=\ /"""---===/
         / \_/ \__/ ---===/
         | //\ || /""TT""/ //\ || ||""\
         | // \ || || // \ || ||__/
         | //--==\ |L--/ || //--==\ || || "=,
          \ ---===/
           \____---===/

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Autoconf works pretty well as is. The CMD/head/head file
(or something close) is the key file to create. There are
a few tests that might need to be added to the autoconf
script to handle some of the shared library generation.

Libtool could also be used, but it's a pain if you're not
using it in combination with autoconf/automake. Using
automake/autoconf in each directory will result in an
estimated configure time-frame of about half an hour, due
to the extensive use of "sed" for substitutions.

The only real requirement for my current prototype makefile
setup is that source for libraries and executables be in
different directories. The grass-base "package" (module?)
would be configured, made, and installed first. All other
packages would be installed from either within the grass
environment, or with an environment variable set to point
to the grass installation (GISBASE?). As far as
modularization goes, I'm not sure what would be the best
way to partition the source into modules. I'm really a
very casual GIS user (mark trails with GPS, plot them on
USGS topographic data, add nearby roads if available, =).

As far as source reorganization, I would recommend a
structure similar to the following in CVS:

$CVSROOT - the root of the cvs repository
$CVSROOT/Grass-old/Grass-5.0/ - put the current Grass-5.0
                        codebase under here for reference
$CVSROOT/Grass/grass-base - the
$CVSROOT/Grass/module-one
$CVSROOT/Grass/module-two
$CVSROOT/Grass/module-three

Set up a CVS alias for the $CVSROOT/Grass directory in your
$CVSROOT/modules file, and for the modules:

grass Grass
module-one Grass/module-one
module-two Grass/module-two
module-three Grass/module-three

This way if you only need one or two modules, you don't have
to check out the entire source tree. But if you need to,
you can check out the entire source tree from a single alias.
Also, any convenient development scripts can be stored in the
top level of the Grass directory, for example, a master
"recompile everything" script, etc.

Markus Neteler wrote:

Hi Eric,

as you have started the new auto-conf for GRASS, I would
like to know your requirements for the new code structure.
We have to meet a set of ideas:
- make auto-conf working
- modularize the code
- each "package" (we need a better name here) should compile
   of the core GRASS is there
-...

As you have worked on auto-conf, you have more insights than me
for the new source code structure.

Thanks in advance

Markus
y

--
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+
| Eric B. Mitchell mailto:emitchell@altaira.com |
| tel: (301) 809 - 3534 Altair Aerospace Corporation |
| tel: (800) 7 - ALTAIR 4201 Northview Dr. Suite 410 |
| fax: (301) 805 - 8122 Bowie, MD 20716 |
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+
              ,___
          /"\ / o=\ /"""---===/
         / \_/ \__/ ---===/
         | //\ || /""TT""/ //\ || ||""\
         | // \ || || // \ || ||__/
         | //--==\ |L--/ || //--==\ || || "=,
          \ ---===/
           \____---===/

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'