origen_std_lib 0.10.1 → 0.13.1

Sign up to get free protection for your applications and to get access to all the features.
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
- }