origen_std_lib 0.10.1 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. checksums.yaml +5 -5
  2. data/config/application.rb +7 -19
  3. data/config/commands.rb +9 -0
  4. data/config/version.rb +1 -2
  5. data/lib/origen_std_lib/v93k.rb +17 -1
  6. data/{stdlib/v93k → src/advantest/smt7}/origen/.cproject +0 -0
  7. data/{stdlib/v93k → src/advantest/smt7}/origen/.project +0 -0
  8. data/src/advantest/smt7/origen/origen/helpers/console.cpp +94 -0
  9. data/src/advantest/smt7/origen/origen/helpers/misc.cpp +456 -0
  10. data/src/advantest/smt7/origen/origen/helpers/time.cpp +64 -0
  11. data/{stdlib/v93k → src/advantest/smt7}/origen/origen/helpers.hpp +25 -8
  12. data/src/advantest/smt7/origen/origen/site.cpp +237 -0
  13. data/src/advantest/smt7/origen/origen/site.hpp +50 -0
  14. data/src/advantest/smt7/origen/origen/test_method/base.cpp +231 -0
  15. data/src/advantest/smt7/origen/origen/test_method/base.hpp +155 -0
  16. data/src/advantest/smt7/origen/origen/test_method/dc_measurement.cpp +266 -0
  17. data/src/advantest/smt7/origen/origen/test_method/dc_measurement.hpp +58 -0
  18. data/src/advantest/smt7/origen/origen/test_method/empty.cpp +13 -0
  19. data/src/advantest/smt7/origen/origen/test_method/empty.hpp +24 -0
  20. data/src/advantest/smt7/origen/origen/test_method/frequency_measurement.cpp +133 -0
  21. data/src/advantest/smt7/origen/origen/test_method/frequency_measurement.hpp +46 -0
  22. data/src/advantest/smt7/origen/origen/test_method/functional_test.cpp +168 -0
  23. data/src/advantest/smt7/origen/origen/test_method/functional_test.hpp +53 -0
  24. data/{stdlib/v93k → src/advantest/smt7}/origen/origen/test_method.hpp +1 -3
  25. data/src/advantest/smt7/origen/origen/utils/version.cpp +72 -0
  26. data/{stdlib/v93k → src/advantest/smt7}/origen/origen/utils/version.hpp +20 -21
  27. data/{stdlib/v93k → src/advantest/smt7}/origen/origen/utils.hpp +1 -3
  28. data/src/advantest/smt7/origen/origen.cpp +18 -0
  29. data/{stdlib/v93k → src/advantest/smt7}/origen/origen.hpp +3 -3
  30. data/src/advantest/smt7/origen/test_methods/ApplyBin.cpp +37 -0
  31. data/src/advantest/smt7/origen/test_methods/DCMeasurement.cpp +90 -0
  32. data/src/advantest/smt7/origen/test_methods/FrequencyMeasurement.cpp +50 -0
  33. data/src/advantest/smt7/origen/test_methods/FunctionalTest.cpp +24 -0
  34. data/src/advantest/smt7/origen/test_methods/RecordBin.cpp +39 -0
  35. data/src/advantest/smt8/origen/common/Origen.java +334 -0
  36. data/src/advantest/smt8/origen/common/OrigenData.java +391 -0
  37. data/src/advantest/smt8/origen/common/OrigenHelpers.java +170 -0
  38. data/src/advantest/smt8/origen/test_methods/Base.java +265 -0
  39. data/src/advantest/smt8/origen/test_methods/DC_Measurement.java +302 -0
  40. data/src/advantest/smt8/origen/test_methods/Empty.java +12 -0
  41. data/src/advantest/smt8/origen/test_methods/Functional_test.java +474 -0
  42. data/templates/web/faq.md.erb +1 -52
  43. data/templates/web/guides/intro.md.erb +8 -0
  44. data/templates/web/guides/{v93k/intro.md.erb → v93ksmt7/capture.md.erb} +0 -2
  45. data/templates/web/guides/v93ksmt7/complete.md.erb +68 -0
  46. data/templates/web/guides/v93ksmt7/customizable.md.erb +139 -0
  47. data/templates/web/guides/v93ksmt7/helpers.md.erb +3 -0
  48. data/templates/web/guides/{v93k → v93ksmt7}/install.md.erb +1 -1
  49. data/templates/web/guides/v93ksmt7/integration.md.erb +3 -0
  50. data/templates/web/guides/v93ksmt7/intro.md.erb +8 -0
  51. data/templates/web/guides/v93ksmt7/patching.md.erb +3 -0
  52. data/templates/web/guides/v93ksmt8/intro.md.erb +9 -0
  53. data/templates/web/index.md.erb +23 -6
  54. data/templates/web/layouts/_guides.html.erb +15 -3
  55. data/templates/web/partials/_common_args.md.erb +13 -0
  56. data/templates/web/partials/_navbar.html.erb +2 -2
  57. metadata +52 -33
  58. data/stdlib/v93k/origen/origen/helpers/console.cpp +0 -105
  59. data/stdlib/v93k/origen/origen/helpers/misc.cpp +0 -311
  60. data/stdlib/v93k/origen/origen/site.cpp +0 -220
  61. data/stdlib/v93k/origen/origen/site.hpp +0 -51
  62. data/stdlib/v93k/origen/origen/test_method/base.hpp +0 -156
  63. data/stdlib/v93k/origen/origen/test_method/dc_measurement.cpp +0 -182
  64. data/stdlib/v93k/origen/origen/test_method/dc_measurement.hpp +0 -59
  65. data/stdlib/v93k/origen/origen/test_method/frequency_measurement.cpp +0 -107
  66. data/stdlib/v93k/origen/origen/test_method/frequency_measurement.hpp +0 -48
  67. data/stdlib/v93k/origen/origen/test_method/functional_test.cpp +0 -125
  68. data/stdlib/v93k/origen/origen/test_method/functional_test.hpp +0 -52
  69. data/stdlib/v93k/origen/origen/utils/version.cpp +0 -79
  70. data/stdlib/v93k/origen/origen.cpp +0 -22
  71. data/stdlib/v93k/origen/test_methods/ApplyBin.cpp +0 -41
  72. data/stdlib/v93k/origen/test_methods/DCMeasurement.cpp +0 -129
  73. data/stdlib/v93k/origen/test_methods/FrequencyMeasurement.cpp +0 -93
  74. data/stdlib/v93k/origen/test_methods/FunctionalTest.cpp +0 -94
  75. data/stdlib/v93k/origen/test_methods/RecordBin.cpp +0 -48
@@ -0,0 +1,139 @@
1
+ % render "templates/web/layouts/guides.html" do
2
+
3
+ The [Complete Tests](<%= path "guides/v93ksm7/complete" %>) provide a way to rapidly build a test program using
4
+ off-the-shelf building blocks, however in many cases it will be desired to run a slightly customized version of these
5
+ tests that is tweaked in some way to suit a particular application domain or for a few specific tests.
6
+
7
+ This is where the customizable test template system should be used to get an easy way to create the
8
+ following types of test methods:
9
+
10
+ * Application-specific test primitives, for example a functional test method which calls an applications-specific
11
+ power up function at the start, or which enforces the use of a particular test port.
12
+ * Test-specific variations on the primitive test methods, for example a functional test which will patch/overlay
13
+ the pattern with some data before running and/or capture and process some data at the end.
14
+
15
+ The key goal of this system is to give test engineers the ability to implement common customization scenarios
16
+ while writing an absolute minimum of application-specific code.
17
+
18
+ ## Concept
19
+
20
+ To create a custom test based on a template, create a test method class that inherits from one of the template classes
21
+ [defined in `Origen::TestMethod`](<%= path "/v93k_smt7/html/namespace_origen_1_1_test_method.html" %>), such as
22
+ [`FunctionalTest`](<%= path "/v93k_smt7/html/class_origen_1_1_test_method_1_1_functional_test.html" %>):
23
+
24
+ ~~~cpp
25
+ #include "origen/test_method/functional_test.hpp"
26
+
27
+ class Functional: public Origen::TestMethod::FunctionalTest {
28
+
29
+ }
30
+ ~~~
31
+
32
+ The test template will take care of many of the low-level details of how to create test methods in SMT7,
33
+ such as having to remember to call `RDI_INIT()` and the use of `ON_FIRST_INVOCATION` and friends.
34
+
35
+ To achieve this, the template takes control of the conventional SMT7 integration functions `initialize()`,
36
+ `run()` and `SMC_backgroundProcessing()`, which means that you should not use these within your application code.
37
+ Instead, use the functions that are described here and these will allow you to hook into the test's
38
+ lifecycle at various points during execution of the test.
39
+ **Note that you do not have do define all of these, only the ones that you want to use.**
40
+
41
+ #### Common Lifecycle Functions
42
+
43
+ Here is a summary of the available lifecycle functions that should be supported by a majority of the
44
+ templates (exceptions will be noted in the documentation for each template below):
45
+
46
+ ~~~cpp
47
+ // This should be used to define any test methods parameters/arguments, it is a direct equivalent of the standard
48
+ // initialize() function.
49
+ function init() {
50
+ }
51
+
52
+ // This will be invoked once (applied to all sites) before executing the main body of the test.
53
+ // It should be used to do any setup that you wish to apply to all sites.
54
+ function preBody() {
55
+ }
56
+
57
+ // This will be invoked once for each active site and the current site number will be passed in.
58
+ // It should be used to do any site-specific setup.
59
+ function preBody(int site) {
60
+ }
61
+
62
+ // This is invoked once per site and can be thought of as roughly equivalent to the standard run() function.
63
+ function body() {
64
+ // By default it calls the test methods execute() method (more on this below), and this will internally apply
65
+ // ON_FIRST_INVOCATION wrappers as required so you should not add these around the call to origen.
66
+ origen.execute();
67
+ }
68
+
69
+ // This will be invoked once (applied to all sites) after executing the main body of the test.
70
+ // It should be used to do any teardown that you wish to apply to all sites.
71
+ // Note that this function is called synchronously, i.e. it will block execution of the test flow until it
72
+ // has completed.
73
+ function postBody() {
74
+ }
75
+
76
+ // This will be invoked once for each active site and the current site number will be passed in.
77
+ // It should be used to do any site-specific teardown.
78
+ // Note that this function is called synchronously, i.e. it will block execution of the test flow until it
79
+ // has completed.
80
+ function postBody(int site) {
81
+ }
82
+
83
+
84
+ // This will be invoked once for each active site and is intended to be the place where any processing of the
85
+ // test result or captured data is performed.
86
+ // If async is enabled then it will be called asynchronously and will not block execution of the test flow.
87
+ // If async is not enabled then it will be called after postBody(int site), but is otherwise equivalent.
88
+ function process(int site) {
89
+ }
90
+ ~~~
91
+
92
+ #### Common Configuration and Execute API
93
+
94
+ All test templates expose their core functionality via an API that is launched through an object called `origen`.
95
+ This is intended to provide a similar look and feel to the native SMT7 RDI API which is exposed through the `rdi` object.
96
+
97
+ As mentioned above, the default `body()` function implementation will call `origen.execute()` which as the name
98
+ suggests will execute the test.
99
+
100
+ Configuration can be done ahead of calling `execute()`, for example a majority of test templates support the concept
101
+ of selecting a port to execute the pattern on, that can be done like this:
102
+
103
+ ~~~cpp
104
+ origen.port("MY_PORT_NAME");
105
+ origen.execute();
106
+ ~~~
107
+
108
+ Or, if you prefer, these can be chained together similar to the RDI API:
109
+
110
+ ~~~cpp
111
+ origen.port("MY_PORT_NAME").execute();
112
+ ~~~
113
+
114
+ To see what configuration options are available from a given test
115
+ [defined in `Origen::TestMethod`](<%= path "/v93k_smt7/html/namespace_origen_1_1_test_method.html" %>), such as
116
+
117
+ #### Asynchronous Processing
118
+
119
+ Asynchronous processing of test results is not supported yet, how to enable it will be described here when it
120
+ is available.
121
+
122
+ The plan is to provide a global switch that will enable/disable asynchronous processing and then an
123
+ individual test-level switch to allow the global setting to be overridden.
124
+
125
+ In the meantime, do all processing that could be done asynchronously within the `process(int site)` function
126
+ described above. Your tests will then be ready to take advantage of the asynchronous feature when it becomes available.
127
+
128
+
129
+ ### Available Templates
130
+
131
+ There now follows some template-specific guidance, which includes some usage examples:
132
+
133
+ * [FunctionalTest](#Functional_Test)
134
+ * [DCMeasurement](#DCMeasurement)
135
+ * [FrequencyMeasurement](#FrequencyMeasurement)
136
+ * [Empty](#Empty)
137
+
138
+
139
+ % end
@@ -0,0 +1,3 @@
1
+ % render "templates/web/layouts/guides.html" do
2
+
3
+ % end
@@ -118,7 +118,7 @@ To check if everything is hooked up correctly, you can add this to one of your s
118
118
  and see if it builds:
119
119
 
120
120
  ~~~cpp
121
- require "origen.hpp"
121
+ include "origen.hpp"
122
122
  ~~~
123
123
 
124
124
  % end
@@ -0,0 +1,3 @@
1
+ % render "templates/web/layouts/guides.html" do
2
+
3
+ % end
@@ -0,0 +1,8 @@
1
+ % render "templates/web/layouts/guides.html" do
2
+
3
+ The SmarTest 7 version of the library provides helpers,
4
+
5
+
6
+
7
+
8
+ % end
@@ -0,0 +1,3 @@
1
+ % render "templates/web/layouts/guides.html" do
2
+
3
+ % end
@@ -0,0 +1,9 @@
1
+ % render "templates/web/layouts/guides.html" do
2
+
3
+ <div class="alert alert-danger" role="alert">
4
+ <strong>Sorry, Documentation Fail</strong>
5
+ </div>
6
+
7
+ Unfortunately this guide has not been written yet, the SMT8 library is still in initial development.
8
+
9
+ % end
@@ -4,18 +4,35 @@
4
4
  %# formatting like this, but in most cases that is not required.
5
5
  <h1><%= Origen.app.namespace %> <span style="font-size: 14px">(<%= Origen.app.version %>)</span></h1>
6
6
 
7
- ### Purpose
7
+ ### Introduction
8
8
 
9
- This project provides a modern, standard test method library for the
10
- Advantest V93000 tester that is freely available for anyone to use.
9
+ OrigenStdLib aims to provide a standard ATE library with the following goals:
11
10
 
12
- [See the FAQ](<%= path "faq" %>) for more background.
11
+ * Be agnostic to any particular company or business so that anyone can use this
12
+ * Be higher level than the native functionality provided by the ATE vendors - reducing the amount of low-level knowledge required by test engineers and the footprint of custom code required to be written for a particular test program application
13
+ * Complement the Origen test program and test pattern generators (although it can still be used standalone with flows and patterns originating from any backend flow)
14
+
15
+ It should be noted that this library does not aim to provide a common API across different ATE platforms. Instead, the goal is to provide
16
+ a library which has a natural look and feel on each platform, while still providing a feature set which is broadly similar
17
+ across all platforms.
18
+
19
+ If abstraction of the test platform is required then that is expected to be done by higher level program generators, such
20
+ as Origen, which can provide a common API that compiles to tests which target different ATE implementations of
21
+ this library.
13
22
 
14
- ### How To Install
23
+ Generally, this library provides three main components:
15
24
 
25
+ * Helper functions for general use in custom application code
26
+ * Complete tests for use off-the-shelf
27
+ * Customizable test templates that provide core functionality with the ability to customize around the edges
28
+
29
+ [See the FAQ](<%= path "faq" %>) for more background.
16
30
 
17
- ### How To Use
31
+ ### Supported Platforms
18
32
 
33
+ OrigenStdLib currently provides libraries for the following platforms:
19
34
 
35
+ * [Advantest V93K SMT7](<%= path 'guides/v93ksmt7/intro' %>)
36
+ * [Advantest V93K SMT8](<%= path 'guides/v93ksmt8/intro' %>)
20
37
 
21
38
  % end
@@ -4,9 +4,21 @@ title: Origen Std Lib
4
4
  <%= render "partials/navbar.html", tab: :guides %>
5
5
 
6
6
  % index = {}
7
- % index["V93K"] = {
8
- % v93k_intro: "Introduction",
9
- % v93k_install: "How to Install",
7
+ % index[nil] = {
8
+ % intro: "Introduction",
9
+ % }
10
+ % index["V93K SMT7"] = {
11
+ % v93ksmt7_intro: "Introduction",
12
+ % v93ksmt7_install: "How to Install",
13
+ % v93ksmt7_helpers: "Helper Functions",
14
+ % v93ksmt7_complete: "Complete Tests",
15
+ % v93ksmt7_customizable: "Customizable Tests",
16
+ % v93ksmt7_patching: "Patching Patterns (Overlay)",
17
+ % v93ksmt7_capture: "Data Capture",
18
+ % v93ksmt7_integration: "Origen Integration",
19
+ % }
20
+ % index["V93K SMT8"] = {
21
+ % v93ksmt8_intro: "Introduction",
10
22
  % }
11
23
 
12
24
  % opts = options.merge(index: index, root: "guides", prompt: "Search the guides...")
@@ -0,0 +1,13 @@
1
+ * **port (string)** - (Optional, Default="") The name of a port to execute the pattern on, will be
2
+ run on all pins ('@') if a port name is not supplied.
3
+ * **testName (string)** - (Optional) An explicit name to be used when logging the result of this
4
+ test, if not given the test suite name will be used
5
+ * **forcePass (int)** - (Optional, Default=0) When set to 1, the test will appear to always pass in the flow (produce
6
+ a green box), although the actual pass/fail result value will be logged to STDF. Normally this would be
7
+ used for tests in the flow which are for data collection only.
8
+ * **onPassFlag (string)** - (Optional) The name of a test flow variable to be set if the test fails, e.g.
9
+ setting this to "MY_FLAG" would cause "@MY_FLAG" to be set to 1 in the event of the test passing.
10
+ No modification will be made to the variable if the test fails.
11
+ * **onFailFlag (string)** - (Optional) The name of a test flow variable to be set if the test fails, e.g.
12
+ setting this to "MY_FLAG" would cause "@MY_FLAG" to be set to 1 in the event of the test failing.
13
+ No modification will be made to the variable if the test passes.
@@ -11,14 +11,14 @@
11
11
  </div>
12
12
  <div id="navbar" class="collapse navbar-collapse">
13
13
  <ul class="nav navbar-nav">
14
- <li class="<%= options[:tab] == :guides ? 'active' : '' %>"><a href="<%= path "/guides/v93k/intro" %>">Guides</a></li>
14
+ <li class="<%= options[:tab] == :guides ? 'active' : '' %>"><a href="<%= path "/guides/intro" %>">Guides</a></li>
15
15
 
16
16
  <li class="<%= options[:tab] == :faq ? 'active' : '' %>"><a href="<%= path "/faq" %>">FAQ</a></li>
17
17
 
18
18
  <li class="dropdown">
19
19
  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">API <span class="caret"></span></a>
20
20
  <ul class="dropdown-menu">
21
- <li><a href="<%= path "/v93k/annotated.html" %>">V93K</a></li>
21
+ <li><a href="<%= path "/v93k_smt7/html/annotated.html" %>">V93K SMT7</a></li>
22
22
  </ul>
23
23
  </li>
24
24
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: origen_std_lib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.13.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen McGinty
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-05 00:00:00.000000000 Z
11
+ date: 2021-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: origen
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.8.1
33
+ version: 0.31.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.8.1
40
+ version: 0.31.0
41
41
  description:
42
42
  email:
43
43
  - stephen.mcginty@nxp.com
@@ -55,34 +55,53 @@ files:
55
55
  - lib/origen_std_lib_dev/interface.rb
56
56
  - lib/tasks/origen_std_lib.rake
57
57
  - program/prb1.rb
58
- - stdlib/v93k/origen/.cproject
59
- - stdlib/v93k/origen/.project
60
- - stdlib/v93k/origen/origen.cpp
61
- - stdlib/v93k/origen/origen.hpp
62
- - stdlib/v93k/origen/origen/helpers.hpp
63
- - stdlib/v93k/origen/origen/helpers/console.cpp
64
- - stdlib/v93k/origen/origen/helpers/misc.cpp
65
- - stdlib/v93k/origen/origen/site.cpp
66
- - stdlib/v93k/origen/origen/site.hpp
67
- - stdlib/v93k/origen/origen/test_method.hpp
68
- - stdlib/v93k/origen/origen/test_method/base.hpp
69
- - stdlib/v93k/origen/origen/test_method/dc_measurement.cpp
70
- - stdlib/v93k/origen/origen/test_method/dc_measurement.hpp
71
- - stdlib/v93k/origen/origen/test_method/frequency_measurement.cpp
72
- - stdlib/v93k/origen/origen/test_method/frequency_measurement.hpp
73
- - stdlib/v93k/origen/origen/test_method/functional_test.cpp
74
- - stdlib/v93k/origen/origen/test_method/functional_test.hpp
75
- - stdlib/v93k/origen/origen/utils.hpp
76
- - stdlib/v93k/origen/origen/utils/version.cpp
77
- - stdlib/v93k/origen/origen/utils/version.hpp
78
- - stdlib/v93k/origen/test_methods/ApplyBin.cpp
79
- - stdlib/v93k/origen/test_methods/DCMeasurement.cpp
80
- - stdlib/v93k/origen/test_methods/FrequencyMeasurement.cpp
81
- - stdlib/v93k/origen/test_methods/FunctionalTest.cpp
82
- - stdlib/v93k/origen/test_methods/RecordBin.cpp
58
+ - src/advantest/smt7/origen/.cproject
59
+ - src/advantest/smt7/origen/.project
60
+ - src/advantest/smt7/origen/origen.cpp
61
+ - src/advantest/smt7/origen/origen.hpp
62
+ - src/advantest/smt7/origen/origen/helpers.hpp
63
+ - src/advantest/smt7/origen/origen/helpers/console.cpp
64
+ - src/advantest/smt7/origen/origen/helpers/misc.cpp
65
+ - src/advantest/smt7/origen/origen/helpers/time.cpp
66
+ - src/advantest/smt7/origen/origen/site.cpp
67
+ - src/advantest/smt7/origen/origen/site.hpp
68
+ - src/advantest/smt7/origen/origen/test_method.hpp
69
+ - src/advantest/smt7/origen/origen/test_method/base.cpp
70
+ - src/advantest/smt7/origen/origen/test_method/base.hpp
71
+ - src/advantest/smt7/origen/origen/test_method/dc_measurement.cpp
72
+ - src/advantest/smt7/origen/origen/test_method/dc_measurement.hpp
73
+ - src/advantest/smt7/origen/origen/test_method/empty.cpp
74
+ - src/advantest/smt7/origen/origen/test_method/empty.hpp
75
+ - src/advantest/smt7/origen/origen/test_method/frequency_measurement.cpp
76
+ - src/advantest/smt7/origen/origen/test_method/frequency_measurement.hpp
77
+ - src/advantest/smt7/origen/origen/test_method/functional_test.cpp
78
+ - src/advantest/smt7/origen/origen/test_method/functional_test.hpp
79
+ - src/advantest/smt7/origen/origen/utils.hpp
80
+ - src/advantest/smt7/origen/origen/utils/version.cpp
81
+ - src/advantest/smt7/origen/origen/utils/version.hpp
82
+ - src/advantest/smt7/origen/test_methods/ApplyBin.cpp
83
+ - src/advantest/smt7/origen/test_methods/DCMeasurement.cpp
84
+ - src/advantest/smt7/origen/test_methods/FrequencyMeasurement.cpp
85
+ - src/advantest/smt7/origen/test_methods/FunctionalTest.cpp
86
+ - src/advantest/smt7/origen/test_methods/RecordBin.cpp
87
+ - src/advantest/smt8/origen/common/Origen.java
88
+ - src/advantest/smt8/origen/common/OrigenData.java
89
+ - src/advantest/smt8/origen/common/OrigenHelpers.java
90
+ - src/advantest/smt8/origen/test_methods/Base.java
91
+ - src/advantest/smt8/origen/test_methods/DC_Measurement.java
92
+ - src/advantest/smt8/origen/test_methods/Empty.java
93
+ - src/advantest/smt8/origen/test_methods/Functional_test.java
83
94
  - templates/web/faq.md.erb
84
- - templates/web/guides/v93k/install.md.erb
85
- - templates/web/guides/v93k/intro.md.erb
95
+ - templates/web/guides/intro.md.erb
96
+ - templates/web/guides/v93ksmt7/capture.md.erb
97
+ - templates/web/guides/v93ksmt7/complete.md.erb
98
+ - templates/web/guides/v93ksmt7/customizable.md.erb
99
+ - templates/web/guides/v93ksmt7/helpers.md.erb
100
+ - templates/web/guides/v93ksmt7/install.md.erb
101
+ - templates/web/guides/v93ksmt7/integration.md.erb
102
+ - templates/web/guides/v93ksmt7/intro.md.erb
103
+ - templates/web/guides/v93ksmt7/patching.md.erb
104
+ - templates/web/guides/v93ksmt8/intro.md.erb
86
105
  - templates/web/img/install1.png
87
106
  - templates/web/img/install2.png
88
107
  - templates/web/img/install3.png
@@ -91,6 +110,7 @@ files:
91
110
  - templates/web/index.md.erb
92
111
  - templates/web/layouts/_basic.html.erb
93
112
  - templates/web/layouts/_guides.html.erb
113
+ - templates/web/partials/_common_args.md.erb
94
114
  - templates/web/partials/_navbar.html.erb
95
115
  - templates/web/release_notes.md.erb
96
116
  homepage:
@@ -111,8 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
131
  - !ruby/object:Gem::Version
112
132
  version: 1.8.11
113
133
  requirements: []
114
- rubyforge_project:
115
- rubygems_version: 2.6.7
134
+ rubygems_version: 3.1.4
116
135
  signing_key:
117
136
  specification_version: 4
118
137
  summary: Test program interface drivers for the Origen tester standard library
@@ -1,105 +0,0 @@
1
- /** @file */
2
- #include "../helpers.hpp"
3
- #include <cerrno>
4
- #include <stdlib.h>
5
- #include "../../origen.hpp"
6
-
7
- using namespace std;
8
-
9
- namespace Origen {
10
-
11
- /// Prints the result of a parametric test to the console
12
- void logParametricTest(string name, int site, double result, LIMIT limits, string pin) {
13
-
14
- cout << site << " ";
15
- if (isPass(result, limits))
16
- cout << " ";
17
- else
18
- cout << "FAIL ";
19
- cout << left << setw(65) << setfill(' ') << name << " ";
20
- cout << left << setw(20) << setfill(' ') << loStr(limits) << " ";
21
- cout << left << setw(20) << setfill(' ') << result;
22
- cout << left << setw(20) << setfill(' ') << hiStr(limits);
23
- cout << pin << endl;
24
-
25
- }
26
-
27
- /// Returns a LIMIT object with no limits enabled
28
- LIMIT noLimits() {
29
- return LIMIT(TM::NA, 0, TM::NA, 0);
30
- }
31
-
32
- /// Prints the result of a functional test to the console
33
- void logFunctionalTest(string name, int site, bool passed, string pattern) {
34
- cout << site << " ";
35
- if (passed)
36
- cout << " ";
37
- else
38
- cout << "FAIL ";
39
- cout << left << setw(65) << setfill(' ') << name << " ";
40
- cout << pattern << endl;
41
- }
42
-
43
- /// Converts the low limit in the given LIMIT object into a string, where an empty string will be returned if the limit is not enabled
44
- string loStr(LIMIT limits) {
45
- double lo = 0.0;
46
- double * plo = &lo;
47
- TM::COMPARE clo;
48
-
49
- clo = limits.getLow(plo);
50
-
51
- if (clo == TM::NA) {
52
- return "";
53
- } else {
54
- stringstream val;
55
- val << lo;
56
- return val.str();
57
- }
58
- }
59
-
60
- /// Converts the high limit in the given LIMIT object into a string, where an empty string will be returned if the limit is not enabled
61
- string hiStr(LIMIT limits) {
62
- double hi = 0.0;
63
- double * phi = &hi;
64
- TM::COMPARE chi;
65
-
66
- chi = limits.getHigh(phi);
67
-
68
- if (chi == TM::NA) {
69
- return "";
70
- } else {
71
- stringstream val;
72
- val << hi;
73
- return val.str();
74
- }
75
- }
76
- /// Returns true if the result is within the given limits
77
- bool isPass(double val, LIMIT limits) {
78
- double lo = 0.0;
79
- double hi = 0.0;
80
- double * plo = &lo;
81
- double * phi = &hi;
82
- TM::COMPARE clo, chi;
83
- bool result;
84
-
85
- clo = limits.getLow(plo);
86
- chi = limits.getHigh(phi);
87
-
88
- result = true;
89
-
90
- if (clo != TM::NA) {
91
- if (clo == TM::GE && val < lo)
92
- result = false;
93
- if (clo == TM::GT && val <= lo)
94
- result = false;
95
- }
96
- if (chi != TM::NA) {
97
- if (chi == TM::LE && val > hi)
98
- result = false;
99
- if (chi == TM::LT && val >= hi)
100
- result = false;
101
- }
102
- return result;
103
- }
104
-
105
- }