Skip to content

Commit

Permalink
update to v1.9
Browse files Browse the repository at this point in the history
  • Loading branch information
blueoceanwater committed Oct 7, 2024
1 parent c4a2447 commit 321fb0d
Show file tree
Hide file tree
Showing 178 changed files with 2,053 additions and 2,759 deletions.
40 changes: 38 additions & 2 deletions ReadMe.md → README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,42 @@ in the `CTF Documentation` directory of the CTF releases' Assets (https://github

## Release Notes

### v1.9
09/12/2024
* CTF Core Changes
* Update plugins loading sequence for customized plugins to override test instructions.

* Minor improvements and bug fixes.

* CTF Plugins Changes

* Updates to CFS Plugin
* Add a new instruction `ClearTlmPacket` to clear received tlm messages of given MID for test verification.

* Allow `CheckTlmValue` instruction to search tlm value in attribute array.

* Fix the issue of `CheckEvent` taking too long to time out when receiving overwhelmingly large numbers of tlm messages.

* Add a `backward` optional argument for `CheckTlmValue` instruction to search telemetry messages received before this instruction execution.

* Add a new feature for `SendCfsCommand` instruction to resolve the macros defined by any registered cfs targets and the macros in the header attributes.
* Add a new feature to allow setting the CPU affinity of Linux targets by taskset command.

* Updates to Variable Plugin
* Make explicit type conversion for CCDD Macro/Const to avoid log warnings.

* Add an option argument to count the occurrence of a string in file for `SearchStr` instruction.


* CTF Tool and Scripts Changes
* Update requirement.txt.

* Remove sample_cfs_workspace submodule from repository.

* Improve CTF tests scripts.


### v1.8.2
11/20/2023

Expand Down Expand Up @@ -467,7 +503,7 @@ Existing users should review the change logs below and ensure current configurat
* Note - Give the custom plugin directory a unique name (do not use `plugins`, `lib`, etc...), so as to not shadow any modules within the CTF repo.

* Add an option to ignore specific CTF instructions within the configuration file. This is useful for CI or specific-configurations that may not have the ability to run certain instructions.
* Add the `ignored_instructions = <instruction_1>, <instruction_2>, ...` field to the config ini. Specify the instructions to ignore (comma-seperated).
* Add the `ignored_instructions = <instruction_1>, <instruction_2>, ...` field to the config ini. Specify the instructions to ignore (comma-separated).

* Minor improvements and bug-fixes.

Expand Down Expand Up @@ -678,7 +714,7 @@ Major backend updates to improve reliability/maintainability of CTF.

MSC-26646-1, "Core Flight System Test Framework (CTF)"

Copyright (c) 2019-2023 United States Government as represented by the
Copyright (c) 2019-2024 United States Government as represented by the
Administrator of the National Aeronautics and Space Administration. All Rights Reserved.

This software is governed by the NASA Open Source Agreement (NOSA) License and may be used,
Expand Down
18 changes: 10 additions & 8 deletions configs/ci_config.ini
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
# Unit: Seconds if using generic system time manager)
ctf_verification_timeout = 5.0

# Global polling period for any "verify_required" CTF insturction.
# Global polling period for any "verify_required" CTF instruction.
# Defines how often to run verification commands until verification either
# passes or timeout
# Unit: Seconds if using generic system time manager)
Expand All @@ -39,10 +39,10 @@ end_test_on_fail = false
# names within the CTF repo.
additional_plugins_path = ""

# Disabled plugins (directory name of plugin). Comma-seperated
# Disabled plugins (directory name of plugin). Comma-separated
disabled_plugins = ""

# Ignored plugin test instructions. Comma-seperated
# Ignored plugin test instructions. Comma-separated
# Note - Ignoring WaitForUserInput since the CI configuration does not support user input.
ignored_instructions = WaitForUserInput

Expand Down Expand Up @@ -125,7 +125,7 @@ build_cfs = true
cfs_build_dir = ${cfs:workspace_dir}

# Build command to run
cfs_build_cmd = make disclean; make TARGET=lx1 install
cfs_build_cmd = make distclean; make TARGET=lx1 install

# Run directory for the CFS project
cfs_run_dir = ${cfs:workspace_dir}/build/exe/lx1
Expand Down Expand Up @@ -154,12 +154,14 @@ remove_continuous_on_fail = True

# CCSDS Data Directory
####
# This directory contains the command and telemetry definitions in JSON format.
# These definitions are used for CTF to command/receive telemetry, as well as
# used by the editor for auto-suggestion features.
# This directory contains the command and telemetry definitions in JSON and/or
# SEDS format. These definitions are used for CTF to command/receive telemetry,
# as well as used by the editor for auto-suggestion features.
####

CCSDS_data_dir = ${cfs:workspace_dir}/ccdd/json
#### CCSDS_data_dir = ${cfs:workspace_dir}/seds/set1
#### CCSDS_data_dir = ${cfs:workspace_dir}/ccsdsData

# Log CCSDS Import Process (Logs all messages parsed from CCSDS Data Directory)
log_ccsds_imports = false
Expand All @@ -176,7 +178,7 @@ cfs_debug = false
# Log every telemetry packet received?
telemetry_debug = false

# Run in a seperate terminal window as CTF? Note - Disable for CI purposes
# Run in a separate terminal window as CTF? Note - Disable for CI purposes
cfs_run_in_xterm = false

# IP address of the target system
Expand Down
42 changes: 24 additions & 18 deletions configs/default_config.ini
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
################################
# Note - This config file provides an example configuration to run CTF as a CFS tool inside a CFS workspace.
# Please ensure that the appropriate fields are set below, specifically for the [cfs] section to match your
# CFS workspace layout.
# Please ensure that the appropriate fields are set below, specifically for the [cfs] section to match your
# CFS workspace layout.
################################


Expand Down Expand Up @@ -94,7 +94,7 @@ CCSDS_header_path = ./plugins/ccsds_plugin/cfe/ccsds_v2/ccsds_v2.py
#######
#
# Note - The CFS Workspace Directory is the CFS project root directory
# which the remaining configuration fields will utilize.
# which the remaining configuration fields will utilize.
#
# Note - Other sections with the same fields can be defined as their own CFS targets to be registered.
# example: [my_custom_cfs_target]
Expand Down Expand Up @@ -124,6 +124,9 @@ cfs_run_dir = ${cfs:workspace_dir}/build/exe/lx1
# Executable to run within the cfs_run_dir
cfs_exe = core-lx1

# Argument prepend to the executable, such as 'taskset 1'. Only apply to Linux
# prepend_arg = taskset 1

# Include CFS UDP port in arg (-p portNum)?
cfs_port_arg = False

Expand All @@ -143,14 +146,20 @@ cfs_output_file = cfs_stdout.txt
# Not doing so may flood the output with error messages
remove_continuous_on_fail = True

# Name of the target in CCSDS data files
CCSDS_target = set1

# CCSDS Data Directory
####
# This directory contains the command and telemetry definitions in JSON format.
# These definitions are used for CTF to command/receive telemetry, as well as
# used by the editor for auto-suggestion features.
# This directory contains the command and telemetry definitions in JSON and/or
# SEDS format. These definitions are used for CTF to command/receive telemetry,
# as well as used by the editor for auto-suggestion features.
####

CCSDS_data_dir = ${cfs:workspace_dir}/ccdd/json
#### CCSDS_data_dir = ${cfs:workspace_dir}/ccdd/json
#### CCSDS_data_dir = ${cfs:workspace_dir}/seds/set1
#### CCSDS_data_dir = ${cfs:workspace_dir}/seds/UnitTest
CCSDS_data_dir = ${cfs:workspace_dir}/ccsdsData

# Log CCSDS Import Process (Logs all messages parsed from CCSDS Data Directory)
log_ccsds_imports = true
Expand All @@ -167,7 +176,7 @@ cfs_debug = false
# Log every telemetry packet received?
telemetry_debug = true

# Run in a seperate terminal window as CTF? Note - Disable for CI purposes
# Run in a separate terminal window as CTF? Note - Disable for CI purposes
cfs_run_in_xterm = True

# IP address of the target system
Expand All @@ -189,10 +198,6 @@ tlm_app_choice = ToApi
# What CCSDS version
ccsds_ver = 2

# Name of the target in CCSDS data files
CCSDS_target = set1


# How long to look back in the evs messages to validate
# Note - Setting this value to 0 means CheckEvent packet must
# be received *while* polling that instruction.
Expand Down Expand Up @@ -256,13 +261,14 @@ remove_continuous_on_fail = True

# CCSDS Data Directory
####
# This directory contains the command and telemetry definitions in JSON format.
# These definitions are used for CTF to command/receive telemetry, as well as
# used by the editor for auto-suggestion features.
# ${cfs:workspace_dir}/ccdd/json
# This directory contains the command and telemetry definitions in JSON and/or
# SEDS format. These definitions are used for CTF to command/receive telemetry,
# as well as used by the editor for auto-suggestion features.
####

CCSDS_data_dir = ${cfs:workspace_dir}/ccdd/json
#### CCSDS_data_dir = ${cfs:workspace_dir}/ccdd/json
CCSDS_data_dir = ${cfs:workspace_dir}/seds/set1
#### CCSDS_data_dir = ${cfs:workspace_dir}/ccsdsData

# Log CCSDS Import Process (Logs all messages parsed from CCSDS Data Directory)
log_ccsds_imports = true
Expand All @@ -282,7 +288,7 @@ cfs_debug = false
# Log every telemetry packet received?
telemetry_debug = True

# Run in a seperate terminal window as CTF? Note - Disable for CI purposes
# Run in a separate terminal window as CTF? Note - Disable for CI purposes
cfs_run_in_xterm = False

# IP address of the target system
Expand Down
12 changes: 7 additions & 5 deletions configs/example_lx1_lx2_config.ini
Original file line number Diff line number Diff line change
Expand Up @@ -150,12 +150,14 @@ remove_continuous_on_fail = True

# CCSDS Data Directory
####
# This directory contains the command and telemetry definitions in JSON format.
# These definitions are used for CTF to command/receive telemetry, as well as
# used by the editor for auto-suggestion features.
# This directory contains the command and telemetry definitions in JSON and/or
# SEDS format. These definitions are used for CTF to command/receive telemetry,
# as well as used by the editor for auto-suggestion features.
####

CCSDS_data_dir = ${cfs:workspace_dir}/ccdd/json
#### CCSDS_data_dir = ${cfs:workspace_dir}/ccdd/json
#### CCSDS_data_dir = ${cfs:workspace_dir}/seds/set1
CCSDS_data_dir = ${cfs:workspace_dir}/ccsdsData

# Log CCSDS Import Process (Logs all messages parsed from CCSDS Data Directory)
log_ccsds_imports = true
Expand All @@ -175,7 +177,7 @@ cfs_debug = false
# Log every telemetry packet received?
telemetry_debug = false

# Run in a seperate terminal window as CTF? Note - Disable for CI purposes
# Run in a separate terminal window as CTF? Note - Disable for CI purposes
cfs_run_in_xterm = True

# IP address of the target system
Expand Down
7 changes: 4 additions & 3 deletions ctf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ and generate test reports.

# MSC-26646-1, "Core Flight System Test Framework (CTF)"
#
# Copyright (c) 2019-2023 United States Government as represented by the
# Copyright (c) 2019-2024 United States Government as represented by the
# Administrator of the National Aeronautics and Space Administration. All Rights Reserved.
#
# This software is governed by the NASA Open Source Agreement (NOSA) License and may be used,
Expand Down Expand Up @@ -37,7 +37,7 @@ from lib.logger import logger as log, set_logger_options_from_config, change_log
from lib.exceptions import CtfTestError

CTF_VERSION = "v1.9"
CTF_RELEASE_DATE = "Nov 20 2023"
CTF_RELEASE_DATE = "Sep 12 2024"


def main():
Expand All @@ -62,7 +62,7 @@ def main():

# Load plugins and determine list of commands they support.
log.info("cFS Test Framework ({}) Starting...".format(CTF_VERSION))
plugin_paths = ['plugins']
plugin_paths = []
additional_plugins_path_str = Global.config.get("core", "additional_plugins_path", fallback="")
additional_plugins_path_list = additional_plugins_path_str.split(',')
for path in additional_plugins_path_list:
Expand All @@ -71,6 +71,7 @@ def main():
additional_plugin_path = expand_path(path.strip())
if additional_plugin_path:
plugin_paths.append(additional_plugin_path)
plugin_paths.append('plugins')
log.info("Loading Plugins... with path: {}".format(plugin_paths))
plugins = PluginManager(plugin_paths)

Expand Down
6 changes: 0 additions & 6 deletions docs/dox_src/customs/cfs_header.tex
Original file line number Diff line number Diff line change
Expand Up @@ -62,17 +62,11 @@
\usepackage{fancyhdr}
\pagestyle{fancyplain}
\fancyhead[RE]{\fancyplain{}{\bfseries\thepage}}
\fancyhead[CE]{\fancyplain{}{\bfseries{EXPORT CONTROLLED}\\}}
\fancyhead[LE]{\fancyplain{}{\bfseries\rightmark}}
\fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}}
\fancyhead[CO]{\fancyplain{}{\bfseries{EXPORT CONTROLLED}\\}}
\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}}
\fancyfoot[RE]{\fancyplain{}{\bfseries{AES-CFS-xx-xxx}}}
\fancyfoot[CE]{\fancyplain{}{\bfseries{EXPORT CONTROLLED}}}
\fancyfoot[LE]{\fancyplain{}{\bfseries\today }}
\fancyfoot[LO]{\fancyplain{}{\bfseries\today }}
\fancyfoot[CO]{\fancyplain{}{\bfseries{EXPORT CONTROLLED}}}
\fancyfoot[RO]{\fancyplain{}{\bfseries{AES-CFS-xx-xxx}}}
\renewcommand{\footrulewidth}{0.4pt}
\renewcommand{\sectionmark}[1]{%
\markright{\thesection\ #1}%
Expand Down
Loading

0 comments on commit 321fb0d

Please sign in to comment.