Skip to content

Instantly share code, notes, and snippets.

@JSchaenzle
Created October 9, 2012 21:51
Show Gist options
  • Select an option

  • Save JSchaenzle/3861684 to your computer and use it in GitHub Desktop.

Select an option

Save JSchaenzle/3861684 to your computer and use it in GitHub Desktop.

Revisions

  1. JSchaenzle revised this gist Oct 9, 2012. 1 changed file with 6 additions and 0 deletions.
    6 changes: 6 additions & 0 deletions test_fixture_config
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,6 @@
    :test_fixture:
    :executable: ruby
    :name: "Microchip simulator test fixture"
    :stderr_redirect: :win #inform Ceedling what model of $stderr capture to use
    :arguments:
    - test/simulation/sim_test_fixture.rb
  2. JSchaenzle revised this gist Oct 9, 2012. 1 changed file with 9 additions and 0 deletions.
    9 changes: 9 additions & 0 deletions sim_test_fixture.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,9 @@
    OUT_FILE = "test/simulation/out.txt"
    File.delete OUT_FILE if File.exists? OUT_FILE
    IO.popen("sim30 test/simulation/sim_instructions.txt")
    sleep 1
    if File.exists? OUT_FILE
    file_contents = File.read OUT_FILE
    file_contents.gsub!("\n", "")
    print file_contents
    end
  3. JSchaenzle revised this gist Oct 9, 2012. 1 changed file with 6 additions and 0 deletions.
    6 changes: 6 additions & 0 deletions sim_instructions.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,6 @@
    LD pic24super
    LC build/release/TestBuild.out
    IO NULL test/simulation/out.txt
    RP
    E
    quit
  4. JSchaenzle revised this gist Oct 9, 2012. 1 changed file with 7 additions and 0 deletions.
    7 changes: 7 additions & 0 deletions common_defines
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,7 @@
    :commmon: &common_defines
    - __PIC24HJ128GP202__
    - UNITY_INT_WIDTH=16
    - CMOCK_MEM_INDEX_TYPE=uint16_t
    - CMOCK_MEM_PTR_AS_INT=uint16_t
    - CMOCK_MEM_ALIGN=1
    - CMOCK_MEM_SIZE=4096
  5. JSchaenzle revised this gist Oct 9, 2012. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions paths_update
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,2 @@
    :include:
    - "C:/Program Files (x86)/Microchip/xc16/v1.10/support/PIC24H/h"
  6. JSchaenzle revised this gist Oct 9, 2012. 1 changed file with 22 additions and 0 deletions.
    22 changes: 22 additions & 0 deletions test_tool_definition
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,22 @@
    :tools:
    :test_compiler:
    :executable: xc16-gcc
    :arguments:
    - -mcpu=24HJ128GP202
    - -x c
    - -c
    - "${1}"
    - -o "${2}"
    - -D$: COLLECTION_DEFINES_TEST_AND_VENDOR
    - -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR
    - -Wall
    - -Os
    - -mlarge-code
    - -mlarge-arrays
    :test_linker:
    :executable: xc16-gcc
    :arguments:
    - -mcpu=24HJ128GP202
    - ${1}
    - -o "./build/release/TestBuild.out"
    - -Wl,-Tp24HJ128GP202.gld,-Map=./build/release/TestOutput.map,--report-mem
  7. JSchaenzle created this gist Oct 9, 2012.
    131 changes: 131 additions & 0 deletions project.yml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,131 @@
    ---

    # Notes:
    # Sample project C code is not presently written to produce a release artifact.
    # As such, release build options are disabled.
    # This sample, therefore, only demonstrates running a collection of unit tests.

    :project:
    :use_exceptions: FALSE
    :use_test_preprocessor: TRUE
    :use_auxiliary_dependencies: TRUE
    :build_root: build
    :release_build: TRUE
    :test_file_prefix: test_

    :release_build:
    :output: MyPicApp.out
    :use_assembly: FALSE

    :environment:

    :extension:
    :executable: .out

    :paths:
    :test:
    - +:test/**
    - -:test/support
    :source:
    - src/**
    :support:
    - test/support
    :include:
    - "C:/Program Files (x86)/Microchip/xc16/v1.10/support/PIC24H/h/"

    :defines:
    # in order to add common defines:
    # 1) remove the trailing [] from the :common: section
    # 2) add entries to the :common: section (e.g. :test: has TEST defined)
    :commmon: &common_defines
    - __PIC24HJ128GP202__
    - UNITY_INT_WIDTH=16
    - CMOCK_MEM_INDEX_TYPE=uint16_t
    - CMOCK_MEM_PTR_AS_INT=uint16_t
    - CMOCK_MEM_ALIGN=1
    - CMOCK_MEM_SIZE=4096
    :test:
    - *common_defines
    - TEST
    :test_preprocess:
    - *common_defines
    - TEST

    :cmock:
    :mock_prefix: mock_
    :when_no_prototypes: :warn
    :enforce_strict_ordering: TRUE
    :plugins:
    - :ignore
    - :callback
    :treat_as:
    uint8: HEX8
    uint16: HEX16
    uint32: UINT32
    int8: INT8
    bool: UINT8

    :tools:
    :test_compiler:
    :executable: xc16-gcc
    :arguments:
    - -mcpu=24HJ128GP202
    - -x c
    - -c
    - "${1}"
    - -o "${2}"
    - -D$: COLLECTION_DEFINES_TEST_AND_VENDOR
    - -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR
    - -Wall
    #- -Werror # We can't keep this on during test becuase of a CMock pointer issue
    - -Os
    - -mlarge-code
    - -mlarge-arrays

    :test_linker:
    :executable: xc16-gcc
    :arguments:
    - -mcpu=24HJ128GP202
    - ${1}
    - -o "./build/release/TestBuild.out"
    - -Wl,-Tp24HJ128GP202.gld,-Map=./build/release/TestOutput.map,--report-mem

    :test_fixture:
    :executable: ruby
    :name: "Microchip simulator test fixture"
    :stderr_redirect: :win #inform Ceedling what model of $stderr capture to use
    :arguments:
    - test/simulation/sim_test_fixture.rb

    :release_compiler:
    :executable: xc16-gcc
    :arguments:
    - -mcpu=24HJ128GP202
    - -x c
    - -c
    - "${1}"
    - -o "${2}"
    - -I"$": COLLECTION_PATHS_SOURCE_INCLUDE_VENDOR
    - -I"$": COLLECTION_PATHS_RELEASE_TOOLCHAIN_INCLUDE
    - -D$: COLLECTION_DEFINES_RELEASE_AND_VENDOR
    - -Wall
    - -Werror
    - -Os
    - -mlarge-code
    - -mlarge-arrays

    :release_linker:
    :executable: xc16-gcc
    :arguments:
    - -mcpu=24HJ128GP202
    - ${1}
    - -o "${2}"
    - -Wl,-Tp24HJ128GP202.gld,-Map=./build/release/MyPicApp.map,--report-mem

    :plugins:
    :load_paths:
    - vendor/ceedling/plugins
    :enabled:
    - stdout_pretty_tests_report
    - module_generator
    ...