PJ_VALIDATE(1)
==============
:doctype: manpage


NAME
----
pj_validate - checks a file strictly follows the Paje file format


SYNOPSIS
--------
*pj_validate* ['OPTIONS'] ['FILE']


DESCRIPTION
-----------

The pj_validate(1) command checks if the paje trace file 'FILE'
strictly follows the Paje file format as defined by the reference
documentation (see section RESOURCES for the appropriate link). It is
a useful program to check if a Paje file is valid and can be used in
the performance analysis of parallel and distributed applications.  If
'FILE' is not provided, then the standard input is used.

*pj_validate* reads the trace file from the beginning until the end of
file is found. During this process, *pj_validate* relies on the Paje
library to recreate in memory the behavior that is registered in the
trace file. This means that *pj_validate* will put in memory all the
contents of the trace file, even if the input is very large. Once all
the contents of the trace file are simulated without any kind of
error, *pj_validate* exits with a value of 0 (meaning the everything
is okay). If the trace is valid, the *pj_validate* also outputs
information regarding the trace: the total number of containers in the
trace, the total number of entities (states, events, links and
variables) and the type hierarchy contained in the trace.


OPTIONS
-------

*pj_validate* accepts the following options:    

*-n, --no-strict*::
    Support old field names in event definitions.

*-f, --flex*::
    Use alternative file reader based on flex/bison (experimental).

*-q, --quiet*::
    Be quiet (no output on stdout).

*-t, --time*::
    Print number of seconds to simulate input

*-?, --help*::
    Show all the available options.

*--usage*::
    Give a short usage message.

INPUT DESCRIPTION
-----------------

The pj_validate(1) command expects an input that follows the Paje file
format (as described in the PDF document listed in the RESOURCES
section of this page). If FILE is not provided, pj_validate(1) will try
to read from the standard input.

OUTPUT DESCRIPTION
------------------

If the input strictly follows the Paje file format, the output of the
pj_validate(1) command looks like this:

  report Containers: 82
  report Entities: 11417509
  report Types: 6
  report Type Hierarchy:
  report |0 (17PajeContainerType)
  report ||ROOT (17PajeContainerType)
  report || LINK (12PajeLinkType)
  report || MACHINE (17PajeContainerType)
  report | | PROCESS (17PajeContainerType)
  report |  | STATE (13PajeStateType)

for an input that contains 82 containers, 11417509 entities spread
among all the containers and 6 types. The type hierarchy starts with
the default root identified by 0 (a container type), with one child
named ROOT (also a container type) that has two children: LINK (a link
type) and MACHINE (a container type). MACHINE has one child PROCESS (a
container type) that has a single child which is a STATE (state type).

RESOURCES
---------

Description of the Paje trace file:
<http://paje.sourceforge.net/download/publication/lang-paje.pdf>

Main web site:
<http://github.com/schnorr/pajeng/>

REPORTING BUGS
--------------

       Report pj_validate bugs to <http://github.com/schnorr/pajeng/issues>


COPYRIGHT
---------

Copyright \(C) 2012-2014 Lucas M. Schnorr. Free use of this software is granted under the terms of the GNU General Public License (GPL).


SEE ALSO
--------

*pj_dump(1)*
