Commit Graph

253 Commits

Author SHA1 Message Date
Derek Bankieris
2c06ae6eaf Rename SIM_*/trick to SIM_*/.trick
Hide the non-zipped Python modules to indicate to users that changing
them will have no effect on the sim.

Refs #1144
2021-05-19 17:33:13 -05:00
Derek Bankieris
8d314fa1b1 Zip SWIG-generated python modules
Closes #1144
2021-05-19 17:23:33 -05:00
ddj116
1d9ea79107
Introducing TrickOps - An Extensible Sim Testing Framework (#1130)
* Introducing TrickOps - An Extensible Sim Testing Framework

Features:

* Multiple simultaneous sim builds, runs, file vs. file comparisons,
  arbitrary post-run analyses, valgrind of runs
* Real-time progress bars for sim builds and runs
* Exit code management lets users easily define success & failure
* Failed comparisons can optionally generate koviz error reports

See share/trick/trickops/README.md for details

* Add GitHub Actions Workflow for TrickOps for Ubuntu:20.04 & CentOS latest

* Adds python unit and doc tests to github actions for push / pull requests
  for Ubuntu:20.04 and CentOS 8:latest. MacOS still forthcoming.
* Also updates documentation with TrickOps information
* Remove duplicate / overwriting SIM_ definitions in ExampleWorkflow.py

* Address Code Review / Discussion

* Reduce set of sims tested in ExampleWorkflow.py to stable set
* Add ExampleWorkflow.py to GitHub Actions
* Clarify documentation and add image of TrickOps in action
* Error/Ignore valgrind entries in YAML file if platform == darwin

* Fix run.compare() logic error and add unit test to cover it

Co-authored-by: Dan Jordan <daniel.d.jordan@nasa.gov>
2021-05-03 14:39:20 -05:00
Fennell, Scott P 263712616
92ad2a8063 reapply prerelease version numbers to master branch 2021-03-12 13:49:27 -06:00
Fennell, Scott P 263712616
7b933255aa Trick Release 19.2.3 2021-03-12 13:42:49 -06:00
Scott Fennell
6691b14e9e
1093 c str (#1119)
* update checkpoint_map.hh #1093

* #1093 update checkpoint_pair.hh

* #1093 update checkpoint_queue.hh

* #1093 update MM_write_checkpoint.cc

* #1093 update units_attach.i

* #1093 update checkpoint_sequence_stl.hh

* #1093 update checkpoint_stack.hh

* #1093 update swig_extend_str.i

* #1093 update swig_int_templates.hh

* #1093 update checkpoint_stack.hh and swig_int_typemap.i

* #1093 fix c_str issue without adding memory leaks

* #1093 fix c_str issue without adding memory leaks

* #1093 remove dangling pointers in injector sim object (without causing memory leaks)

* #1093 remove dangling pointers in injector sim object (without causing memory leaks)

* #1093 remove dangling pointers in Event Manaager sim object (without causing memory leaks)

* #1093 fix MonteCarlo_c_intf dangling pointers

Co-authored-by: Fennell, Scott P 263712616 <scott.p.fennell@nasa.gov>

closes #1093
2021-03-12 13:23:35 -06:00
Fennell, Scott P 263712616
be407eaf13 Update version numbers to pre-release for 19.3.0 2021-01-11 13:59:31 -06:00
Fennell, Scott P 263712616
e0be091c7e Trick Release 19.2.2 2021-01-11 13:57:14 -06:00
Scott Fennell
939b3002d1
tv dynamic allocations post initialization and test update (#1090)
* #1086 append runtime allocations when sie is requested instead of initialization

* #1088 change sie error to warning and improve warning message

* #1089 lowercase powertools in centOS 8 config


closes #1086
closes #1088
closes #1089
2020-12-15 12:48:21 -06:00
Fennell, Scott P 263712616
a84ac0e856 Update version numbers to pre-release for 19.3.0 2020-10-27 13:08:01 -05:00
Fennell, Scott P 263712616
8f36f91b55 Trick Release 19.2.1 2020-10-27 12:57:18 -05:00
Scott Fennell
7277b16017
#1063 move sim service xml file (#1069)
Co-authored-by: Fennell, Scott P 263712616 <scott.p.fennell@nasa.gov>
2020-10-23 15:45:32 -05:00
Derek Bankieris
1e8228e344 Use -isystem for Trick and Python headers
Closes #1067
2020-10-23 08:28:01 -05:00
Fennell, Scott P 263712616
3f7ebd38e3 Update version numbers to pre-release for 19.3.0 2020-09-13 19:36:34 -05:00
Fennell, Scott P 263712616
424c2b60bd Trick release 19.2.0 2020-09-13 18:43:17 -05:00
Scott Fennell
f825dc00fc
Merge test branch into master (#1047)
* #1041 filter -W workaround for ICG linking to LLVM 10 libclang-cpp.so (#1044)

* 1043 drg checkpoint memory leak (#1045)

* #1043 drg fix drg checkpoint memory leak

* 947 sie generation rework (#1046)

generate  S_sie.resource at during build instead of runtime
2020-09-01 15:55:19 -05:00
Scott Fennell
3b89cbfdb2
iss #1009 (#1040)
Link correct clang libs based on availability. ICG clang lib link flags are determined by trick/configure
2020-08-28 14:52:23 -05:00
Derek Bankieris
ab2cfe1a34 Silence SWIG warning 315
Nothing known about identifier

Closes #1025
2020-08-11 14:34:54 -05:00
Penn, John M 047828115
a58378063f Update Compiling and Linking Overview 2020-04-01 14:55:27 -05:00
Penn, John M 047828115
1cc06c46bf Update Basics_of_Program_Memory_and_Variables in preparation for interns. Ref #974 2020-03-30 20:04:50 -05:00
Scott Fennell
3c0f40f1bb
Update version nmuber 2020-02-18 16:12:27 -06:00
Scott Fennell
05acf0d92f
19.1.0 2020-02-18 10:13:02 -06:00
Scott Fennell
b724f502b3
fix 32 bit test (#953)
* fix tests for 32 bit mode

* fix issues with mongoose build

* Update docker.yml
2020-02-14 10:23:19 -06:00
Scott Fennell
4f5ce7e4a1
Maven, offline mode, and --enable-mongoose (#939)
closes #938 
closes #941 
closes #943
2020-02-05 14:31:58 -06:00
Scott Fennell
d93f503b91 version 19.0.1 2020-01-15 14:59:50 -06:00
Penn, John M 047828115
1bc245b1ad Explicitly link with the mongoose library that we built. Ref #915 2019-12-02 16:45:28 -06:00
Scott Fennell
086c5c84c3 change version number for release 2019-11-22 08:45:43 -06:00
Alex Lin
ce0cdc9636
Cmake merge (#901)
* Merging changes from cmake branch to master

* Fixing includes for renamed header files

* still need build rule

* Adding warning for swig code for gcc8+

* Adding CMakeLists.txt for data products

* Cmake merge #901

Making adjustments to get cmake working on the Mac (Mojave)

* Cmake merge #901

Changing string append to list append
2019-11-19 09:01:16 -06:00
Derek Bankieris
213964afba Fix typos 2019-11-05 16:03:47 -06:00
Derek Bankieris
9501bd9a5e Fix typo 2019-11-05 16:02:12 -06:00
Derek Bankieris
2d89023031 Generalize from_pid to find_simulation
This allows searching for a sim by any of its parameters over the
multicate channel.
2019-11-04 11:22:48 -06:00
Derek Bankieris
c35ca93830 Add checkpoint functionality to variable_server.py 2019-11-01 15:30:26 -05:00
jmpenn
95c6659733
Incorporate Webserver into Trick, so one only has to include HttpServ… (#886)
* Incorporate Webserver into Trick, so one only has to include HttpServer.sm

* Tweaks in default index.html file

* Rename HTTPServer.sm to WebServer.sm

* Rename http_server to WebServer

* Add --retry to curl invocations in HttpServer makefile.

* Fix #include in VariableServerVariable.hh

* Include cleanup and curl tweaks in the hopes of making Jenkins happy.

* Doh! problem in makefile masked by preinstalled mongoose in usr/local/lib

* DIE Make Bug DIE

* Fix include in WebServer.sm

* WebServer.sm constructor name

* Don't SWIG mongoose.h

* Compile with -std=c++11

* Attempt to fix race condition in makefile

* makefie tweek

* Fix trick library name problem for Centos and Redhat
2019-10-23 11:58:19 -05:00
Scott Fennell
82bae3b0d0 #836 remove all S_default.dat stuff 2019-07-09 15:58:26 -05:00
Alex Lin
d1c08ade7a
Make switching to 32bit compile better #829 (#830)
Added a new configure arugument "--enable-32bit".  If enabled,
TRICK_FORCE_32BIT is automatically set for building Trick and for
all sims built.  Changed the ARCH and added -m32 in the configure
script if 32bit is enabled.  This changes the configure script to
test for 32bit libraries.
2019-06-27 07:58:49 -05:00
Scott Fennell
b23b19195b
Merge pull request #818 from nasa/786-clock-stuff
Add C call to clock_tics_per_sec and also log init job elapsed time
2019-06-18 13:38:18 -05:00
Alex Lin
453a03a809
Get configure with no java and no X to work #735 (#817)
Found if --without-x was specified, that automatically caused an
error condition in the configure script.  Fixed that and only
tested for X windows headers and libs if X is included.  Excluded
a couple of directories from compiling if X is not included.

Didn't seem to be a problem with java.
2019-06-18 11:00:42 -05:00
Alex Lin
497f11f132
Make TRICK_CXX variable to specify c++ compiler #767 (#815)
Changed all references of TRICK_CPPC to TRICK_CXX.  Added a
warning message that TRICK_CPPC has been deprecated.
2019-06-18 11:00:08 -05:00
Scott Fennell
97941ac073 move init_log_stream to Executive.hh, move Executive::process_sim_args from "default data" to Executive::init 2019-06-18 10:34:56 -05:00
dbankieris
053b42512b
Merge pull request #809 from nasa/703
Separate stdout and stderr during CP
2019-06-12 09:15:50 -05:00
Alex Lin
a420418443 TPROCTE_HOME Being Used In Place Of TPRO_HOME #778
Changed the Tsync routing from using the old TPro API to the
new Tsync API.
2019-06-11 15:50:49 -05:00
Alex Lin
a78fcf1bc9 TPROCTE_HOME Being Used In Place Of TPRO_HOME #778
Need to exclude the tsync directory from Trick operations.
2019-06-11 11:22:06 -05:00
Alex Lin
a394f0d187 TPROCTE_HOME Being Used In Place Of TPRO_HOME #778
Needed to make some more fixes to work with modern tsync driver
code.
2019-06-11 09:48:29 -05:00
Derek Bankieris
b3c9e75c1b Separate stdout and stderr during CP
Closes #703
2019-06-07 09:34:53 -05:00
dbankieris
35c2dacac5
Merge pull request #785 from nasa/746
Clean up duplication in makefiles
2019-05-30 16:27:51 -05:00
dbankieris
ae09b2b243
Merge pull request #780 from nasa/505
Autogenerate SWIG dependencies
2019-05-30 16:04:27 -05:00
Derek Bankieris
7b0e84e58e Clean up duplication in makefiles
Normalize behavior of TRICK_VERBOSE_BUILD

Closes #746
2019-05-30 15:47:07 -05:00
Derek Bankieris
cf5c087ef0 Autogenerate SWIG dependencies
Add flags to SWIG invocation for PYTHON MODULE files
Make dependency files order-only prerequisites

Refs #505
2019-05-30 09:52:06 -05:00
Scott Fennell
aed4c94e56 version number to 19.1.dev 2019-05-29 15:29:41 -05:00
Scott Fennell
51c9d69ac8 Trick 19 is here (╯°□°)╯︵ ┻━┻ 2019-05-29 15:23:52 -05:00
Scott Fennell
24e1ec6d46 update version number 2019-05-29 15:13:13 -05:00
dbankieris
a3c7b57a0a
Merge pull request #778 from esduran/fix/with-tpro-path-bug
Consistently use TPRO_HOME over TPROCTE_HOME
2019-05-29 14:54:03 -05:00
Derek Bankieris
36c19e1589 Change TPROCTE_HOME to TPRO_HOME in config_user.mk.in 2019-05-29 14:50:58 -05:00
Derek Bankieris
7b7ecaa0c4 Trickification: autogenerate SWIG dependencies
Refs #505
2019-05-29 10:45:26 -05:00
Derek Bankieris
881ee69757 Improve Python 3 support in variable_server.py
Correct send_on_copy's variable server string

Closes #777
2019-05-22 11:38:35 -05:00
Derek Bankieris
3e3bc02cd2 Correct TRICK_CONVERT_SWIG_FLAGS in Makefile_swig
Fixes #770
2019-05-10 15:30:17 -05:00
nmerlene
38bfdf2a54
Convert string to bytes in variable_server.py for Python 3
* Method socket.sendall() expects bytes to be sent, rather than a string
* Python 3 stores text strings as unicode (not ASCII) by default
* Therefore, strings must be explicitly converted to bytes for Python 3 compatibility
* This works for both Python 2 and Python 3 (tested on Python 2.7, Python 3.6, and Python 3.7)
2019-04-24 15:45:06 -05:00
Scott Fennell
49e243b54a
Merge branch 'master' into VERBOSE-synonym 2019-04-02 13:34:52 -05:00
Aaron Brogley
e52449309c Create the shortcut trick.mc_add_variable.
This is shorter than the existing trick_mc.mc.add_variable and is
accessible through the trick namespace with 'import trick'.
2019-03-26 16:58:27 -05:00
Derek Bankieris
951bee52c0 Use existing variables for LD and c++
This is why we have code reviews!
2019-03-25 11:33:50 -05:00
Derek Bankieris
4146834f10 Support static/dynamic libraries in Trickification
Update documentation
Change TRICK_LIB_BUILD_TYPE to TRICKIFY_BUILD_TYPE
Remove support for linking in arbitrary objects
Conform logging to existing pattern
2019-03-25 10:49:34 -05:00
Scott Fennell
644a9a0e00 #741 add VERBOSE synonym everywhere 2019-03-21 09:28:52 -05:00
Jose Perez
787f2c7dc2 Support Shared and Static library. Optionally package trickified generated code and source code in to one library. 2019-03-20 15:32:11 -05:00
dbankieris
348bbb3798
Add ExecutiveException.hh to sim_services.i (#691)
* Add ExecutiveException.hh to sim_services.i and files_to_ICG.hh
* Update version number

Fixes #690
2018-10-30 13:49:55 -05:00
Scott Fennell
437ee149b5 release 17.4.0 2018-10-25 15:45:40 -05:00
Derek Bankieris
f6872aa12c Add missing dependency to Trickification makefile
Fixes #679
2018-10-18 11:37:59 -05:00
Derek Bankieris
d38c30ad02 SWIG all of S_library_swig during Trickification
Fixes #681
2018-10-18 10:45:13 -05:00
Scott Fennell
8044c03176 #618 update trickify.mk flag name 2018-07-09 09:41:34 -05:00
Scott Fennell
bf7ce2db3c #618 revert/remove TRICK_SYSTEM_SWIG_FLAGS. Wiki and trickify.mk update still required 2018-06-29 11:06:50 -05:00
anon
ef634c9f48 #618 add TRICK_SWIG_FLAGS, TRICK_SYSTEM_SWIG_FLAGS, TRICK_SWIG_CFLAGS, TRICK_SYSTEM_SWIG_CFLAGS. *_FLAGS are swig options, *_CFLAGS are g++ compiler options for swig objects. TRICK_SYSTEM_* options should not be changed by trick users 2018-06-27 13:58:44 -05:00
anon
23fef115c8 #603 #623 2018-05-22 14:55:47 -05:00
anon
9a2bab0df2 #603 #623 2018-05-22 14:53:10 -05:00
anon
bd0cfec731 #603 #623 2018-05-22 14:36:46 -05:00
anon
d764a67709 #603 restored 'make print-%' in sim directory 2018-05-22 14:01:32 -05:00
Derek Bankieris
2ce53dadd2 Move pymods into share/trick
Fixes #574
2018-03-05 15:17:22 -06:00
Alex Lin
4bf35a9c82 Revert "Merge pull request #533 from nasa/MakefileCleanup"
This reverts commit 269ed77cb4, reversing
changes made to d97f482219.
2018-03-02 08:59:26 -06:00
Alex Lin
9dd302f4b1 Trick makefile output formatting and cleanup. #533
Removed the red from the clean rules.  We'd like to reserve red for
errors.  Ended up removing all color from the clean side.
2018-03-01 08:51:57 -06:00
Alex Lin
9643311f4c Merge branch 'master' into MakefileCleanup 2018-03-01 08:32:08 -06:00
Alex Lin
d97f482219 Allow the FrameLog class to use a different clock #571
Added a clock reference that to the FrameLog class that defaults
to the GetTimeOfDay clock.  This clock has fast access and is
non intrusive to real-time operations using a different clock.

Added a function to set the clock to something else if desired.
2018-02-28 17:33:09 -06:00
John M. Penn
64d44d6fa8 Updates to Trick 17 Tutorial slides. Ref #554 2018-02-22 15:47:40 -06:00
John M. Penn
907cd2c481 Created Trick17 Tutorial Review Slides. Ref #554 2018-02-20 18:25:26 -06:00
Alex Lin
8f76605f3b Create Message client that writes to screen on a separate thread #553
Created a new message class that will copy incoming messages to a
buffer area.  The buffer area is pre allocated during simulation
initialization.  On a separate thread the buffer area is written
to std::cout.
2018-01-25 15:59:19 -06:00
Derek Bankieris
5db74dc804 Prefer simply-expanded variables in makefiles
Closes #538
2018-01-09 12:19:16 -06:00
Alex Lin
c694700148 Add environment variable to ignore types from ICG processing #535
Added a new environment variable TRICK_ICG_IGNORE_TYPES.  Class/struct/enum
types found in this semicolon delimited list will not have attributes written
out.
2017-12-19 10:02:41 -06:00
Christopher LaChance
6e0fcbd947 Updated formating and replaced formating variables. 2017-12-07 15:10:39 -06:00
Christopher LaChance
1bb3ac2a06 Cleaned up 'make clean' output significantly. 2017-12-06 13:12:13 -06:00
Derek Bankieris
380ab024a4 Add --with-udunits path to TRICK_EXCLUDE
Fixes #524
2017-12-04 11:02:03 -06:00
Alex Lin
de012dde71 Feature request: Support checkpointing and logging of std::array #480
Added std::array as an STL type Trick recognizes.  We can now create io code
that can save and restore std::arrays like std::vectors and other similar
types. Like other STL types, an std::array cannot be logged or viewed in
trick-tv.
2017-09-27 16:01:52 -05:00
Alex Lin
e2693de992 Many Trick sims SEGFAULT when built in 32-bit mode #440
Added a switch to trick-ICG to handle the -m32 flag.  When the
flag is present we tell clang to use a 32bit layout when calculating
member offsets.
2017-06-19 14:18:37 -05:00
Derek Bankieris
bb9b136a66 Remove CURDIR in trickify.mk
Reverts the important parts of c909669. Trying to include another
project's build dependencies as part of a sim build doesn't work that
well.

Refs #309
2017-05-30 08:56:06 -05:00
Alex Lin
34c62c5aab Sim build doesn't stop on error #421
PIPESTATUS is only available in bash.  For many of the systems
we use /bin/sh and /bin/bash are the same, but noooo, not on
Ubuntu where it is linked to dash.  I set SHELL := /bin/bash
in our makefile now.
2017-05-18 14:34:32 -05:00
Alex Lin
b2ebe157ed Lost the MAKE_out file when we updated simulation makefiles #412
Added echos to all compile commands to append to MAKE_out.  tee'd
the output of the compile command so that it will go to both the MAKE_out
file and the screen.
2017-04-18 10:26:58 -05:00
Derek Bankieris
2db341cff8 Revert (almost all of) 2e4c3286
Sadly, we cannot yet require SWIG 2.0.

Refs #400
2017-03-28 15:59:08 -05:00
Derek Bankieris
b53c52ac33 Separate ICG & SWIG exclusion constructs
Refs #392
2017-03-27 15:19:43 -05:00
Derek Bankieris
2e4c3286a3 Automatically generate dependencies with SWIG
Like gcc, swig supports all those -M options. Use them to automatically
manage *_py.cpp dependencies.
Add dependency generation to trickify.mk as well.
2017-03-14 13:38:09 -05:00
Alex Lin
7c78187abf Using ccache seems to work but prints warnings #390
Found a place in the makefile where TRICK_CC was not being set correctly.
Also found a case in gte.pm where we are not handling ccache properly.
2017-03-13 15:11:57 -05:00
Derek Bankieris
dd2a17e034 Separate convert_swig rule in trickify.mk
Refs #309
2017-02-27 08:56:09 -06:00
Derek Bankieris
c909669f7d Use absolute paths in S_source.d (Trickification)
CURDIR is used to produce absolute paths in S_source.d, which allows it
to be included from external makefiles. It is specifically intended to
be included from a Trickified project's user-facing makefile. That is,
the one the user is intended to include in a sim's S_overrides.mk. This
allows the project to automatically build their Trickified object as
part of a simulation build, but only when necessary as specified by the
dependencies.

Refs #309
2017-02-16 12:58:07 -06:00
Derek Bankieris
76148fda7a Don't echo ld command in trickify.mk
Refs #309
2017-02-15 13:42:58 -06:00
Derek Bankieris
40242601b2 Use partial linking in trickify.mk
Trick uses dlsym to dynamically load symbols at run time. At link time,
it cannot be known which symbols will be needed. When presented with a
library, the linker will only link in symbols that are known to be
needed. Therefore, the use of -whole-archive (Linux) or -force_load
(Mac) is necessary when linking a Trickified library into a sim.

We can simplify this by partially linking into an object instead of
creating a library. The linker will link all symbols in an object
regardless of whether or not they are known to be needed.

Refs #309
2017-02-15 12:57:20 -06:00