Skip to content

Commit d4b3148

Browse files
Improved display of coverage points and test procedures.
1 parent 7c5b2ec commit d4b3148

File tree

7 files changed

+89
-33
lines changed

7 files changed

+89
-33
lines changed

backends/portfolio/templates/beginning.adoc.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
:appendix-refsig: Appendix
2929
:sectnums:
3030
:toc: left
31-
:toclevels: 2
31+
:toclevels: 5
3232
// Determined that uncommenting this causes cross-references to IDL functions
3333
// from instruction IDL code to not link. The IDL code uses this
3434
// block tag to get "source" formatting:

backends/portfolio/templates/coverage_points.adoc.erb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
<% unless db_obj.cert_coverage_points.empty? -%>
2+
<% nice_name = db_obj.is_a?(CsrField) ? "#{db_obj.parent.name}.#{db_obj.name}" : db_obj.name -%>
23
<% if defined?(use_description_list) && use_description_list -%>
3-
Coverage Points: ::
4+
Coverage Points for `<%= nice_name %>`: ::
45
<% else -%>
5-
==== Coverage Points
6+
==== Coverage Points for `<%= nice_name %>`
67
<% end -%>
78

89
[%autowidth]

backends/portfolio/templates/csr_appendix.adoc.erb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ This CSR has no fields. However, it must still exist (not cause an `Illegal Inst
111111
112112
<% csr.implemented_fields(design).each do |field| -%>
113113
<%= anchor_for_udb_doc_csr_field(csr.name, field.name) %>
114-
===== `<%= field.name %>` Field
114+
===== `<%= csr.name %>.<%= field.name %>` Field
115115
116116
<% if !field.defined_in_all_bases? -%>
117117
IMPORTANT: <%= field.name %> is only defined in <%= field.base32_only? ? "RV32" : "RV64" %> (`<%= field.base32_only? ? field.location_cond32 : field.location_cond64 %>`)
@@ -127,7 +127,6 @@ IMPORTANT: <%= field.name %> is only defined in <%= field.base32_only? ? "RV32"
127127
// do what's described in https://github.com/asciidoctor/asciidoctor/issues/1709
128128
// but that would be a level 5 heading in this CSR field case which is pretty ugly.
129129
130-
.<%= csr.name + "." + field.name %>
131130
****
132131
Location: ::
133132
<%= field.location_pretty(design) %>

backends/portfolio/templates/ext_appendix.adoc.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
Ratification date:::
2929
<%= v.ratification_date %>
3030
<% end # if %>
31-
<% if v.changes.empty? -%>
31+
<% unless v.changes.empty? -%>
3232
Changes:::
3333
3434
<% v.changes.each do |c| -%>

backends/portfolio/templates/test_procedures.adoc.erb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
<% unless db_obj.cert_test_procedures.empty? -%>
2+
<% nice_name = db_obj.is_a?(CsrField) ? "#{db_obj.parent.name}.#{db_obj.name}" : db_obj.name -%>
23
<% if defined?(use_description_list) && use_description_list -%>
3-
Test Procedures: ::
4+
Test Procedures for `<%= nice_name %>`: ::
45
<% else -%>
5-
==== Test Procedures
6+
==== Test Procedures for `<%= nice_name %>`
67
<% end -%>
78

89
<% db_obj.cert_test_procedures.each do |tp| -%>

backends/proc_ctp/templates/proc_ctp.adoc.erb

Lines changed: 79 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -82,32 +82,90 @@ The specific rules for updating the version number for a CTP are as follows:
8282

8383
<%= proc_cert_design.include_erb("proc_naming_scheme.adoc.erb") %>
8484

85-
== Instruction Summary
85+
== Coverage Points
8686

87-
[%autowidth]
88-
|===
89-
| Name | Long Name
87+
This section contains a view of the coverage point information organized by kind
88+
(i.e., extension, instruction, or CSR).
89+
This document is generated by a database backend so all views of the information are consistent.
9090

91-
<% design.in_scope_instructions.each do |inst| -%>
92-
| <%= link_to_udb_doc_inst(inst.name) %>
93-
| <%= inst.long_name %>
94-
<% end # do -%>
95-
|===
91+
=== Extension Coverage Points
9692

97-
== CSR Summary
93+
<% proc_cert_model.in_scope_extensions.each do |ext| -%>
94+
<%= portfolio_design.include_erb("coverage_points.adoc.erb", { "db_obj" => ext }) %>
95+
<% end -%>
9896

99-
[%autowidth]
100-
|===
101-
| Name | Long Name | Address | Mode | Primary Extension
97+
=== Instruction Coverage Points
10298

103-
<% design.in_scope_csrs.sort_by!(&:name).each do |csr| -%>
104-
| <%= link_to_udb_doc_csr(csr.name) %>
105-
| <%= csr.long_name %>
106-
| <%= "0x#{csr.address.to_s(16)}" %>
107-
| <%= csr.priv_mode %>
108-
| <%= csr.primary_defined_by %>
109-
<% end # do -%>
110-
|===
99+
<% proc_cert_model.in_scope_instructions(design).each do |inst| -%>
100+
<%= portfolio_design.include_erb("coverage_points.adoc.erb", { "db_obj" => inst }) %>
101+
<% end -%>
102+
103+
=== CSR Coverage Points
104+
105+
<% proc_cert_model.in_scope_csrs(design).each do |csr| -%>
106+
<%= portfolio_design.include_erb("coverage_points.adoc.erb", { "db_obj" => csr }) %>
107+
<% csr.implemented_fields(design).each do |field| -%>
108+
<%= portfolio_design.include_erb("coverage_points.adoc.erb", { "db_obj" => field }) %>
109+
<% end -%>
110+
<% end -%>
111+
112+
== Test Procedures
113+
114+
This section contains just view of the test procedure information organized by kind
115+
(i.e., extension, instruction, or CSR).
116+
This document is generated by a database backend so all views of the information are consistent.
117+
118+
=== Extension Test Procedures
119+
120+
<% proc_cert_model.in_scope_extensions.each do |ext| -%>
121+
<%= portfolio_design.include_erb("test_procedures.adoc.erb", { "db_obj" => ext }) %>
122+
<% end -%>
123+
124+
=== Instruction Test Procedures
125+
126+
<% proc_cert_model.in_scope_instructions(design).each do |inst| -%>
127+
<%= portfolio_design.include_erb("test_procedures.adoc.erb", { "db_obj" => inst }) %>
128+
<% end -%>
129+
130+
=== CSR Test Procedures
131+
132+
<% proc_cert_model.in_scope_csrs(design).each do |csr| -%>
133+
<%= portfolio_design.include_erb("test_procedures.adoc.erb", { "db_obj" => csr }) %>
134+
<% csr.implemented_fields(design).each do |field| -%>
135+
<%= portfolio_design.include_erb("test_procedures.adoc.erb", { "db_obj" => field }) %>
136+
<% end -%>
137+
<% end -%>
138+
139+
== Combined Coverage Points & Test Procedures
140+
141+
This section contains a combined view of the coverage point and test procedure information organized
142+
by kind (i.e., extension, instruction, or CSR).
143+
This document is generated by a database backend so all views of the information are consistent.
144+
145+
=== Extension Coverage Points & Test Procedures
146+
147+
<% proc_cert_model.in_scope_extensions.each do |ext| -%>
148+
<%= portfolio_design.include_erb("coverage_points.adoc.erb", { "db_obj" => ext }) %>
149+
<%= portfolio_design.include_erb("test_procedures.adoc.erb", { "db_obj" => ext }) %>
150+
<% end -%>
151+
152+
=== Instruction Coverage Points & Test Procedures
153+
154+
<% proc_cert_model.in_scope_instructions(design).each do |inst| -%>
155+
<%= portfolio_design.include_erb("coverage_points.adoc.erb", { "db_obj" => inst }) %>
156+
<%= portfolio_design.include_erb("test_procedures.adoc.erb", { "db_obj" => inst }) %>
157+
<% end -%>
158+
159+
=== CSR Coverage Points & Test Procedures
160+
161+
<% proc_cert_model.in_scope_csrs(design).each do |csr| -%>
162+
<%= portfolio_design.include_erb("coverage_points.adoc.erb", { "db_obj" => csr }) %>
163+
<%= portfolio_design.include_erb("test_procedures.adoc.erb", { "db_obj" => csr }) %>
164+
<% csr.implemented_fields(design).each do |field| -%>
165+
<%= portfolio_design.include_erb("coverage_points.adoc.erb", { "db_obj" => field, "use_description_list" => true }) %>
166+
<%= portfolio_design.include_erb("test_procedures.adoc.erb", { "db_obj" => field, "use_description_list" => true }) %>
167+
<% end -%>
168+
<% end -%>
111169

112170
// Appendices
113171
<%= portfolio_design.include_erb("ext_appendix.adoc.erb", { "gen_ctp_content" => true }) %>
@@ -126,6 +184,3 @@ include::ext/riscv-isa-manual/src/riscv-unprivileged.adoc[]
126184
// Reset chapter numbering
127185
:!chapter-number:
128186
include::ext/riscv-isa-manual/src/riscv-privileged.adoc[]
129-
130-
// Make sure this didn't get overwritten by the included volumes (AKA book parts).
131-
// :toclevels: 2

lib/arch_obj_models/database_obj.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ def __source
250250
def definedBy = @data["definedBy"]
251251

252252
def inspect
253-
self.class.name
253+
self.class.name + "##{name}"
254254
end
255255

256256
# make the underlying YAML description available with []

0 commit comments

Comments
 (0)