origen_testers 0.50.0 → 0.51.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e5895221d7385ac33677fffba9d998bf29a475978677f740968f1cfda57677e1
4
- data.tar.gz: 5f623aacb11d0ea9b56b36fd3186cf32dbf2724e034de5d2b1822e02c507aa53
3
+ metadata.gz: c5ff2e2f1b209e2dadbf045bc52f45361a8220f7f43b5fa27a1782f6c2b61a9e
4
+ data.tar.gz: a0387e3b6629f520a42dde25ae6c5b78a86d4f93a1beefbff6bd865988b8577d
5
5
  SHA512:
6
- metadata.gz: bae858530cf088b08ac1938411815e6d67fe86524fa98824f328583dfa6c319e5143588b868edd16ffef31a119e665e64cde113d0ea5c71ba8dd0ddb3b899529
7
- data.tar.gz: 368c6d87bf5fb030e83cf96283c0d6ce43844a442f2719a10a76ddf3c2f4906ef7cd4012d7fdea9bf5eec4f39aedfaa0f1bba0276892978e2e91c26495ac9168
6
+ metadata.gz: 8c1b698fc08e769ce66ce5b65073f1aa3644b59497587849338c6fa343c615e42c5300e45238d4f706c347d6b7e354aab7fae28541f90f8845ee3cdcd0633a72
7
+ data.tar.gz: a227d7203f78c6d36aa2963478067b8e4a7746e588f464d680da7e36069f48fa2bbed19743d8e2923045bb53adb42856ab700061bd52492d28bf0c188f7c2db3
data/config/commands.rb CHANGED
@@ -200,7 +200,7 @@ when "examples", "test"
200
200
  puts
201
201
  puts "To approve any diffs in the reference.list files run the following command:"
202
202
  puts
203
- platforms = %w(j750 j750_hpt ultraflex v93k v93k_multiport v93k_enable_flow v93k_disable_flow v93k_limits_file v93k_global v93k_smt8) # put here the various platforms used in examples/program_generator.rb
203
+ platforms = %w(j750 j750_literals j750_hpt ultraflex ultraflex_literals v93k v93k_multiport v93k_enable_flow v93k_disable_flow v93k_limits_file v93k_global v93k_smt8) # put here the various platforms used in examples/program_generator.rb
204
204
  reflist_command = ''
205
205
  platforms.each do |platform|
206
206
  unless reflist_command == ''
data/config/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module OrigenTesters
2
2
  MAJOR = 0
3
- MINOR = 50
3
+ MINOR = 51
4
4
  BUGFIX = 0
5
5
  DEV = nil
6
6
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
@@ -9,15 +9,25 @@ module OrigenTesters::ATP
9
9
  end
10
10
 
11
11
  # Make all IDs lower cased symbols
12
+ # unless literal_flags is set
12
13
  def on_id(node)
13
14
  id = node.to_a[0]
14
- node.updated(nil, [clean(id)])
15
+ if tester.literal_flags
16
+ node.updated(nil, [id])
17
+ else
18
+ node.updated(nil, [clean(id)])
19
+ end
15
20
  end
16
21
 
17
22
  # Make all ID references use the lower case symbols
23
+ # unless literal_flags is set
18
24
  def on_if_failed(node)
19
25
  id, *children = *node
20
- node.updated(nil, [clean(id)] + process_all(children))
26
+ if tester.literal_flags
27
+ node.updated(nil, [id] + process_all(children))
28
+ else
29
+ node.updated(nil, [clean(id)] + process_all(children))
30
+ end
21
31
  end
22
32
  alias_method :on_if_passed, :on_if_failed
23
33
  alias_method :on_if_any_failed, :on_if_failed
@@ -425,7 +425,11 @@ module OrigenTesters
425
425
  flag[0] = ''
426
426
  flag
427
427
  else
428
- flag.downcase
428
+ if tester.literal_enables
429
+ flag
430
+ else
431
+ flag.downcase
432
+ end
429
433
  end
430
434
  end
431
435
 
@@ -23,6 +23,11 @@ module OrigenTesters
23
23
  attr_accessor :min_repeat_loop
24
24
  alias_method :min_repeat_count, :min_repeat_loop
25
25
  alias_method :min_repeat_count=, :min_repeat_loop=
26
+
27
+ # Control literal flag definitions
28
+ attr_accessor :literal_flags # whether flags should be exactly as indicated
29
+ attr_accessor :literal_enables # whether enables should be exactly as indicated
30
+
26
31
  # NOTE: DO NOT USE THIS CLASS DIRECTLY ONLY USED AS PARENT FOR
27
32
  # DESIRED TESTER CLASS
28
33
 
@@ -64,6 +69,13 @@ module OrigenTesters
64
69
  @overlay_history = {} # used to track labels, subroutines, digsrc pins used etc
65
70
  @overlay_subr = nil
66
71
  @capture_history = {}
72
+
73
+ if options[:literal_flags]
74
+ @literal_flags = true
75
+ end
76
+ if options[:literal_enables]
77
+ @literal_enables = true
78
+ end
67
79
  end
68
80
 
69
81
  def igxl_based?
@@ -26,8 +26,8 @@ module OrigenTesters
26
26
 
27
27
  # Returns a new J750 instance, normally there would only ever be one of these
28
28
  # assigned to the global variable such as $tester by your target.
29
- def initialize
30
- super
29
+ def initialize(options = {})
30
+ super(options)
31
31
  @pipeline_depth = 34 # for extended mode is vectors, for normal mode is vector pairs (54 for J750Ex)
32
32
  @use_hv_pin = false # allows to use high voltage for a pin for all patterns
33
33
  @software_version = '3.50.40'
@@ -14,8 +14,8 @@ module OrigenTesters
14
14
  class J750_HPT < J750
15
15
  require 'origen_testers/igxl_based_tester/j750_hpt/generator.rb'
16
16
 
17
- def initialize
18
- super
17
+ def initialize(options = {})
18
+ super(options)
19
19
  @@hpt_mode = true
20
20
  @drive_hi_state = '.1'
21
21
  @drive_lo_state = '.0'
@@ -27,6 +27,10 @@ module OrigenTesters
27
27
  alias_method :min_repeat_count, :min_repeat_loop
28
28
  alias_method :min_repeat_count=, :min_repeat_loop=
29
29
 
30
+ # Control literal flag definitions
31
+ attr_accessor :literal_flags # whether flags should be exactly as indicated
32
+ attr_accessor :literal_enables # whether enables should be exactly as indicated
33
+
30
34
  # permit option to generate multiport type patterns
31
35
  # and use multiport type code
32
36
  attr_accessor :multiport
@@ -140,6 +144,13 @@ module OrigenTesters
140
144
  @create_limits_file = false
141
145
  end
142
146
  end
147
+ if options[:literal_flags]
148
+ @literal_flags = true
149
+ end
150
+ if options[:literal_enables]
151
+ @literal_enables = true
152
+ end
153
+
143
154
  @package_namespace = options.delete(:package_namespace)
144
155
  self.limitfile_test_modes = options[:limitfile_test_modes] || options[:limitsfile_test_modes]
145
156
  self.force_pass_on_continue = options[:force_pass_on_continue]
@@ -0,0 +1,139 @@
1
+ # Flow to exercise the Flow Control API related to using exact literal value of flag (no lowercase or cleanup) as
2
+ # controlled at tester API level
3
+ #
4
+ # Some of the other flows also cover the flow control API and those tests are used
5
+ # to guarantee that the test ID references work when sub-flows are involved.
6
+ # This flow provides a full checkout of all flow control methods.
7
+ Flow.create interface: 'OrigenTesters::Test::Interface', flow_name: "Flow Control Flag/Enable Literal Testing" do
8
+ flow.flow_description = 'Flow to exercise the Flow Control API' if tester.v93k?
9
+
10
+ self.resources_filename = 'flow_control'
11
+
12
+ log "Test that if_failed works using Literal"
13
+ func :read1, id: :Test__Flag1, bin: 10, number: 50000
14
+ func :erase1, if_failed: :Test__Flag1, bin: 12, number: 50010
15
+
16
+ log "Test the block form of if_failed"
17
+ func :read2, id: :Test__Flag2, bin: 10, number: 50020
18
+ if_failed :Test__Flag2 do
19
+ func :erase2, number: 50030
20
+ func :erase2, number: 50040
21
+ end
22
+
23
+ log "Test that if_passed works"
24
+ func :read1, id: :Test__Flag3, bin: 10, number: 50050
25
+ func :pgm1, if_passed: :Test__Flag3, number: 50060
26
+
27
+ log "Test the block form of if_passed"
28
+ func :read2, id: :Test__Flag4, bin: 10, number: 50070
29
+ if_passed :Test__Flag4 do
30
+ func :pgm1, number: 50080
31
+ func :pgm1, number: 50090
32
+ end
33
+
34
+ log "Test that if_ran works"
35
+ func :pgm, id: :Test__Flag5, bin: 10, number: 50100
36
+ func :read0, if_ran: :Test__Flag5, number: 50110
37
+
38
+ log "Test the block form of if_ran"
39
+ func :pgm, id: :Test__Flag6, bin: 10, number: 50120
40
+ if_ran :Test__Flag6 do
41
+ func :read0, number: 50130
42
+ func :read0, number: 50140
43
+ end
44
+
45
+ log "Test that unless_ran works"
46
+ func :pgm, id: :Test__Flag7, bin: 10, number: 50150
47
+ func :read0, unless_ran: :Test__Flag7, number: 50160
48
+
49
+ log "Test the block form of unless_ran"
50
+ func :pgm, id: :Test__Flag8, bin: 10, number: 50170
51
+ unless_ran :Test__Flag8 do
52
+ func :read0, number: 50180
53
+ func :read0, number: 50190
54
+ end
55
+
56
+ log "Test that if_enable works"
57
+ func :extra_test, if_enable: :Extras__123, number: 50270
58
+
59
+ log "Test the block form of if_enable"
60
+ if_enable :Cz__123 do
61
+ func :cz_test1, number: 50280
62
+ func :cz_test2, number: 50290
63
+ end
64
+
65
+ log "Test that unless_enable works"
66
+ func :long_test, unless_enable: :Quick__123, number: 50300
67
+
68
+ log "Test the block form of unless_enable"
69
+ unless_enable :Quick__123 do
70
+ func :long_test1, number: 50310
71
+ func :long_test2, number: 50320
72
+ end
73
+
74
+ log "Test that if_any_failed works"
75
+ func :test1, id: :iFA__1, number: 50330
76
+ func :test2, id: :iFA__2, number: 50340
77
+ func :test3, if_any_failed: [:iFA__1, :iFA__2], number: 50350
78
+
79
+ log "Test the block form of if_any_failed"
80
+ func :test1, id: :OOF__Passcode1, number: 50360
81
+ func :test2, id: :OOF__Passcode2, number: 50370
82
+ if_any_failed :OOF__Passcode1, :OOF__Passcode2 do
83
+ func :test3, number: 50380
84
+ func :test4, number: 50390
85
+ end
86
+
87
+ log "Test that if_all_failed works"
88
+ func :test1, id: :iFall__1, number: 50400
89
+ func :test2, id: :iFall__2, number: 50410
90
+ func :test3, if_all_failed: [:iFall__1, :iFall__2], number: 50420
91
+
92
+ log "Test the block form of if_all_failed"
93
+ func :test1, id: :iFall__B1, number: 50430
94
+ func :test2, id: :iFall__B2, number: 50440
95
+ if_all_failed [:iFall__B1, :iFall__B2] do
96
+ func :test3, number: 50450
97
+ func :test4, number: 50460
98
+ end
99
+
100
+ log "Test that if_any_passed works"
101
+ func :test1, id: :if__AP1, number: 50470
102
+ func :test2, id: :if__AP2, number: 50480
103
+ func :test3, if_any_passed: [:if__AP1, :if__AP2], number: 50490
104
+
105
+ log "Test the block form of if_any_passed"
106
+ func :test1, id: :if__APB1, number: 50500
107
+ func :test2, id: :if__APB2, number: 50510
108
+ if_any_passed :if__APB1, :if__APB2 do
109
+ func :test3, number: 50520
110
+ func :test4, number: 50530
111
+ end
112
+
113
+ log "Test that if_all_passed works"
114
+ func :test1, id: :iFall__P1, number: 50540
115
+ func :test2, id: :iFall__P2, number: 50550
116
+ func :test3, if_all_passed: [:iFall__P1, :iFall__P2], number: 50560
117
+
118
+ log "Test the block form of if_all_passed"
119
+ func :test1, id: :iFall__PB1, number: 50570
120
+ func :test2, id: :iFall__PB2, number: 50580
121
+ if_all_passed :iFall__PB1, :iFall__PB2 do
122
+ func :test3, number: 50590
123
+ func :test4, number: 50600
124
+ end
125
+
126
+ log "Test that group-level dependencies work"
127
+ group "grp1", id: :Group__1 do
128
+ func :grp1_test1, bin: 5, number: 50610
129
+ func :grp1_test2, bin: 5, number: 50620
130
+ func :grp1_test3, bin: 5, number: 50630
131
+ end
132
+
133
+ group "grp2", if_failed: :Group__1 do
134
+ func :grp2_test1, bin: 5, number: 50640
135
+ func :grp2_test2, bin: 5, number: 50650
136
+ func :grp2_test3, bin: 5, number: 50660
137
+ end
138
+
139
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: origen_testers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.50.0
4
+ version: 0.51.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen McGinty
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-16 00:00:00.000000000 Z
11
+ date: 2022-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: origen
@@ -532,6 +532,7 @@ files:
532
532
  - program/custom_tests.rb
533
533
  - program/flow_control.rb
534
534
  - program/flow_control_flag_bug.rb
535
+ - program/flow_control_literals.rb
535
536
  - program/prb1.rb
536
537
  - program/prb1_resources.rb
537
538
  - program/prb2.rb
@@ -600,7 +601,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
600
601
  - !ruby/object:Gem::Version
601
602
  version: '0'
602
603
  requirements: []
603
- rubygems_version: 3.1.4
604
+ rubygems_version: 3.1.6
604
605
  signing_key:
605
606
  specification_version: 4
606
607
  summary: This plugin provides Origen tester models to drive ATE type testers like