Open-Source Projects: Issueshttps://forge.ispras.ru/https://forge.ispras.ru/favicon.ico?16490126692020-02-13T14:42:42ZOpen-Source Projects
Redmine MicroTESK - Bug #10121 (Open): technical output printing at 'compile.sh' script running with '--h...https://forge.ispras.ru/issues/101212020-02-13T14:42:42ZSergey Smolovsmolov@ispras.ru
<pre>
$ ./bin/compile.sh --help
Buildfile: /home/ssedai/Downloads/microtesk-2.5.1-beta-200127/bin/build.xml
clean:
[delete] Deleting directory /home/ssedai/Downloads/microtesk-2.5.1-beta-200127/gen
BUILD SUCCESSFUL
Total time: 0 seconds
usage: [options] Files to be processed
-ad,--arch-dirs <arg> Home directories for tested architectures [works with -g],
default=""
-ae,--asserts-enabled Enables assertion checks during simulation [works with -g],
default=false
-af,--align-format <arg> Alignment directive format [works with -g], default=".align %d"
-aff,--align-format2 <arg> Alignment directive format [works with -g], default=".align %d,
0x%02x"
-baf,--byte-align-format <arg> Byte alignment directive format [works with -g], default=".balign
%d"
-baff,--byte-align-format2 <arg> Byte alignment directive format [works with -g], default=".balign
%d, 0x%02x"
-bel,--branch-exec-limit <arg> Maximum execution count for an instruction [works with -g],
default=100
-bfbe,--binary-file-big-endian Use big endian for binary files, default=false
-bfe,--binary-file-extension <arg> Binary file extension [works with -g], default="bin"
-btn,--base-template-name <arg> Name of test template base class [works with -gt], default=""
-btp,--base-template-path <arg> Path to test template base class file [works with -gt],
default=""
-cd,--comments-debug Enables generation of detailed comments, depends on
--comments-enabled [works with -g], default=false
-ce,--comments-enabled Enables generation of comments [works with -g], default=false
-cfe,--code-file-extension <arg> Output file extension [works with -g], default="asm"
-cfp,--code-file-prefix <arg> Output file prefix [works with -g], default="test"
-cl,--coverage-log Enables coverage trace generation [works with -g], default=false
-ct,--comment-token <arg> Single-line comment text [works with -g], default="//"
-cte,--comment-token-end <arg> Text that ends a multiline comment [works with -g], default="*/"
-cts,--comment-token-start <arg> Text that starts a multiline comment [works with -g],
default="/*"
-d,--disassemble Disassembles binary files, default=false
-dfe,--data-file-extension <arg> Data file extension [works with -g], default="asm"
-dfp,--data-file-prefix <arg> Data file prefix [works with -g], default="data"
-dp,--debug-print Enables printing detailed debug messages [works with -g],
default=false
-dsk,--data-section-keyword <arg> Data section directive [works with -g], default=".data"
-dtd,--default-test-data Enables generation of default test data [works with -g],
default=false
-ed,--extension-dir <arg> Directory that stores user-defined Java code [works with -t],
default=""
-efp,--except-file-prefix <arg> Exception handler file prefix [works with -g],
default="test_except"
-fde,--fetch-decode-enabled Enables allocation, fetching and decoding of instructions [works
with -g], default=false
-g,--generate Generates test programs, default=false
-gb,--generate-binary Enables generating binary files (limited functionality for
debugging) [works with -g], default=false
-gf,--global-format <arg> Global directive format [works with -g], default=".globl %s"
-gt,--generate-template Generates test templates, default=false
-h,--help Shows help message, default=false
-i,--include <arg> Directory that stores include files [works with -t], default=""
-ii,--ignored-instructions <arg> Instructions to be ignored [works with -gt], default=""
-in,--instance-number <arg> Number of processing element instances [works with -g], default=1
-it,--indent-token <arg> Indentation text [works with -g], default="
"
-jtpm,--jruby-thread-pool-max <arg>JRuby: maximum number of threads to allow in pool [works with
-g], default=2147483647
-mn,--model-name <arg> Name of the constructed microprocessor model [works with -t],
default=""
-ns,--no-simulation Disables simulation of generated code [works with -g],
default=false
-od,--output-dir <arg> Directory to place generated files, default="./output"
-of,--origin-format <arg> Origin directive format [works with -g], default=".org 0x%x"
-off,--option-format <arg> Option directive format [works with -g], default=".option %s"
-paf,--power2-align-format <arg> Power of 2 alignment directive format [works with -g],
default=".p2align %d"
-paff,--power2-align-format2 <arg> Power of 2 alignment directive format [works with -g],
default=".p2align %d, 0x%02x"
-pll,--program-length-limit <arg> Maximum program length [works with -g], default=1000
-rd,--reserve-dependencies Enables automated reservation of registers that have dependencies
[works with -g], default=false
-re,--reserve-explicit Enables marking all explicitly specified registers as used [works
with -g], default=false
-ri,--rev-id <arg> Identifier of revision to be used, default=""
-rl,--rate-limit <arg> Minimum generation rate [works with -g], default=0
-rs,--random-seed <arg> Seed for randomizer [works with -g], default=0
-s,--solver <arg> Constraint solver engine to be used, default="cvc4"
-sc,--self-checks Enables inserting self-checks into test programs [works with -g],
default=false
-sd,--solver-debug Enables debug mode for SMT solvers [works with -g], default=false
-se,--symbolic-execute Performs symbolic execution, default=false
-st,--separator-token <arg> Text used to create separators [works with -g], default="="
-t,--translate Translates formal specifications, default=false
-tl,--tracer-log Enables generation of Tracer logs for simulation [works with -g],
default=false
-tll,--trace-length-limit <arg> Maximum execution trace length [works with -g], default=1000
-ts,--time-statistics Enables printing time statistics [works with -g], default=false
-tsk,--text-section-keyword <arg> Text section directive [works with -g], default=".text"
-tt,--transform-trace Transforms traces into templates, default=false
-v,--verbose Enables printing diagnostic messages, default=false
-wf,--weak-format <arg> Weak directive format [works with -g], default=".weak %s"
Buildfile: /home/ssedai/Downloads/microtesk-2.5.1-beta-200127/bin/build.xml
build:
[mkdir] Created dir: /home/ssedai/Downloads/microtesk-2.5.1-beta-200127/gen/bin
BUILD FAILED
/home/ssedai/Downloads/microtesk-2.5.1-beta-200127/bin/build.xml:47: srcdir "/home/ssedai/Downloads/microtesk-2.5.1-beta-200127/gen/src/java" does not exist!
</pre> MicroTESK - Bug #10102 (Closed): incorrect ld scripts for x86 test programshttps://forge.ispras.ru/issues/101022020-02-06T10:22:06ZSergey Smolovsmolov@ispras.ru
<p>For x86 test programs emulation on QEMU4V, the following approach can be used. Test program should be compiled as <em>bootable drive</em> and run on QEMU4V ("-hda" option). The following linker script should be generated:<br /><pre>
SECTIONS
{
/* The BIOS loads the code from the disk to this location.
* We must tell that to the linker so that it can properly
* calculate the addresses of symbols we might jump to.
*/
. = 0x7c00;
.text :
{
__start = .;
*(.text)
/* Place the magic boot bytes at the end of the first 512 sector of the disk. */
. = 0x1FE;
SHORT(0xAA55)
}
}
</pre></p>
<p>Now ld scripts look as follows:<br /><pre>
ENTRY(_start)
SECTIONS
{
. = 0x7C00;
.text : { *(".text")}
. = 0x8000;
.data : { *(".data")}
.bss : { *(".bss COMMON")}
. = ALIGN(8);
. = . + 0x10000;
stack_top = .;
}
</pre></p> MicroTESK - Bug #10094 (Closed): strange common code at LinkerScript.stghttps://forge.ispras.ru/issues/100942020-02-04T14:06:08ZSergey Smolovsmolov@ispras.ru
<p>The StringTemplate description for ld scripts looks as follows (<a class="external" href="https://forge.ispras.ru/projects/microtesk/repository/microtesk/revisions/master/entry/src/main/resources/core/stg/LinkerScript.stg">https://forge.ispras.ru/projects/microtesk/repository/microtesk/revisions/master/entry/src/main/resources/core/stg/LinkerScript.stg</a>):<br /><pre>
linker_script(
time,
section_ids,
section_vas,
section_flags
) ::= <<
<linker_script_header(time)>
ENTRY(_start)
SECTIONS
{
<section_ids, section_vas, section_flags : {id, va, fl | <section(id, va, fl)>}; separator="\n">
. = ALIGN(8);
. = . + 0x10000;
stack_top = .;
}
>>
section(id, va, common) ::= <<
<if(va)>. = <va>;<\n><endif><id> : { *("<id><if(common)> COMMON<endif>")}
>>
</pre></p>
<p>The following part is common for all linker scripts that are generated by the MicroTESK:<br /><pre>
. = ALIGN(8);
. = . + 0x10000;
stack_top = .;
</pre></p>
<p>It seems suspicious that this code is repeated for all ISAs.</p> MicroTESK - Bug #10069 (New): cpu.nml Error: Internal error: context [/Isa] 1:8 attribute file is...https://forge.ispras.ru/issues/100692020-01-24T12:11:55ZSergey Smolovsmolov@ispras.ru
<p>Upon building, the following error appears in Gradle log:<br /><pre>
> Task :translateCpu
Translating: src/main/arch/demo/cpu/model/cpu.nml
Model name: cpu
Included: src/main/arch/demo/cpu/model/cpu.nml
Error: Internal error: context [/Isa] 1:8 attribute file isn't defined
</pre></p> MicroTESK for PowerPC - Bug #10031 (New): WARNING: An illegal reflective access operation has occ...https://forge.ispras.ru/issues/100312020-01-13T11:54:41ZSergey Smolovsmolov@ispras.ru
<p>The following warnings appear in test log:<br /><pre><code class="text syntaxhl" data-language="text">WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.jruby.util.io.ChannelDescriptor (file:/home/ssedai/projects/microtesk-powerpc/build/target/lib/jars/jruby-complete-1.7.25.jar) to method sun.nio.ch.SelChImpl.getFD()
WARNING: Please consider reporting this to the maintainers of org.jruby.util.io.ChannelDescriptor
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
</code></pre></p>
<p>OpenJDK 11 is used.</p> MicroTESK - Bug #9437 (Closed): ru.ispras.microtesk.model.minimips.BufferPreparatorTestCase: QEMU...https://forge.ispras.ru/issues/94372019-01-18T13:41:47ZSergey Smolovsmolov@ispras.ru
<p>When running the ru.ispras.microtesk.model.minimips.BufferPreparatorTestCase test case at Jenkins server, the following error takes place:<br /><pre>
java.lang.AssertionError: Process has returned '139': "/srv/jenkins/workspace/MicroTESK/build/tools/qemu/bin/qemu-system-mips -M mips -cpu mips32r6-generic -d unimp,nochain,in_asm -nographic -singlestep -D /srv/jenkins/workspace/MicroTESK/build/test/minimips/buffer_preparator/buffer_preparator_0000-qemu.log -bios /srv/jenkins/workspace/MicroTESK/build/test/minimips/buffer_preparator/buffer_preparator_0000.elf"
No error log is found, try to run command in terminal.
at org.junit.Assert.fail(Assert.java:88)
at ru.ispras.microtesk.model.minimips.MiniMipsTest.runCommand(MiniMipsTest.java:556)
at ru.ispras.microtesk.model.minimips.MiniMipsTest.runCommand(MiniMipsTest.java:477)
at ru.ispras.microtesk.model.minimips.MiniMipsTest.emulate(MiniMipsTest.java:311)
at ru.ispras.microtesk.model.minimips.MiniMipsTest.compileAndEmulate(MiniMipsTest.java:273)
</pre></p>
<p>At Jenkins this event causes the general protection error as it is described in /var/log/messages (/var/log/kern.log):<br /><pre>
kernel: [19535.492676] traps: qemu-system-mip[1930] general protection ip:56360bb9966c sp:7f50ad4776b8 error:0 in qemu-system-mips[56360b8eb000+8ff000]
</pre></p>
<p>To preproduce the error,uncomment ru.ispras.microtesk.model.minimips.BufferPreparatorTestCase class' code.</p> MicroTESK - Bug #9436 (Closed): ru.ispras.microtesk.mmu.translator.GeneralTestCase: java.lang.Ill...https://forge.ispras.ru/issues/94362019-01-17T14:45:54ZSergey Smolovsmolov@ispras.ru
<pre>
:test
Translating: ./src/test/mmu/general.mmu
Model name: general
Included: ./src/test/mmu/general.mmu
Included: address.mmu
java.lang.IllegalArgumentException
at ru.ispras.fortress.util.InvariantChecks.checkTrue(InvariantChecks.java:53)
at ru.ispras.fortress.util.InvariantChecks.checkTrue(InvariantChecks.java:38)
at ru.ispras.fortress.util.InvariantChecks.checkNotNull(InvariantChecks.java:95)
at ru.ispras.microtesk.mmu.translator.MmuTreeWalkerBase.assignContext(MmuTreeWalkerBase.java:199)
at ru.ispras.microtesk.mmu.translator.MmuTranslator.start(MmuTranslator.java:121)
at ru.ispras.microtesk.translator.Translator.translate(Translator.java:201)
at ru.ispras.microtesk.translator.TranslatorTest.translate(TranslatorTest.java:79)
at ru.ispras.microtesk.mmu.translator.GeneralTestCase.test(GeneralTestCase.java:26)
</pre>
<p>The exception is thrown, but the test passes</p> MicroTESK - Bug #9063 (Closed): microtesk/src/main/java/core/ru/ispras/microtesk/utils/PropertyMa...https://forge.ispras.ru/issues/90632018-07-05T07:28:46ZSergey Smolovsmolov@ispras.ru
<p>The following warning appears at the compilation process:<br /><pre><code class="text syntaxhl" data-language="text">Note: /home/ssedai/projects/microtesk/src/main/java/core/ru/ispras/microtesk/utils/PropertyMap.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
</code></pre></p> MicroTESK - Bug #7730 (Closed): [tarmac-logger] missing "<cpu>" taghttps://forge.ispras.ru/issues/77302016-11-17T10:04:56ZSergey Smolovsmolov@ispras.ru
<p>As it is described in "Tarmac Trace for Fast Models" version 9.2, instruction trace should have the following format:</p>
<pre>
<time> <scale> <cpu> [IT|IS] (<inst_id>) <addr> <opcode> [A|T|X] <mode>_<security> : <disasm>
</pre>
<p>But MicroTESK skips "<cpu>" field.</p>
<p>Here is a description for this field from 9.2:</p>
<pre>
<cpu>
Processor that gave the instruction.
</pre> MicroTESK - Bug #6241 (Closed): Generated assembler files contain tab-only lineshttps://forge.ispras.ru/issues/62412015-08-26T14:47:00ZSergey Smolovsmolov@ispras.ru
<p>It should be checked that every line in the generated file (e.g. assembler file) do not contain spaces or tabs only.</p> MicroTESK - Bug #6106 (Closed): zero opcodes for instructions in Tarmac loghttps://forge.ispras.ru/issues/61062015-06-23T09:23:34ZSergey Smolovsmolov@ispras.ru
<p>Most of instructions that are represented in Tarmac log have zero opcodes. Today only two instructions definitely have non-zero opcodes - that are <code>hlt</code> and <code>add</code>.<br />Here is a sample of Tarmac log that demonstrates this bug:<br /><pre>
882 clk IT (882) 00002648 00000000 A svc_ns : movz x0, #0x0, LSL #48
883 clk IT (883) 00002654 00000000 A svc_ns : movk x0, #0x0, LSL #32
884 clk IT (884) 00002660 00000000 A svc_ns : movk x0, #0x0, LSL #16
885 clk IT (885) 0000266c 00000000 A svc_ns : movk x0, #0x1, LSL #0
886 clk IT (886) 00002678 00000000 A svc_ns : movz x1, #0x0, LSL #48
887 clk IT (887) 00002684 00000000 A svc_ns : movk x1, #0x0, LSL #32
888 clk IT (888) 00002690 00000000 A svc_ns : movk x1, #0x0, LSL #16
889 clk IT (889) 0000269c 00000000 A svc_ns : movk x1, #0x1, LSL #0
890 clk IT (890) 000026a8 91000420 A svc_ns : add x0, x1, #1, LSL #0
891 clk IT (891) 000026ac 00000000 A svc_ns : movz x0, #0x0, LSL #48
892 clk IT (892) 000026b8 00000000 A svc_ns : movk x0, #0x0, LSL #32
893 clk IT (893) 000026c4 00000000 A svc_ns : movk x0, #0x0, LSL #16
894 clk IT (894) 000026d0 00000000 A svc_ns : movk x0, #0x1, LSL #0
895 clk IT (895) 000026dc 00000000 A svc_ns : movz x1, #0x0, LSL #48
896 clk IT (896) 000026e8 00000000 A svc_ns : movk x1, #0x0, LSL #32
897 clk IT (897) 000026f4 00000000 A svc_ns : movk x1, #0x0, LSL #16
898 clk IT (898) 00002700 00000000 A svc_ns : movk x1, #0x1, LSL #0
899 clk IT (899) 0000270c 91000420 A svc_ns : add x0, x1, #1, LSL #0
900 clk IT (900) 00002710 d45bd5a0 A svc_ns : hlt #57005
</pre></p> MicroTESK - Bug #5966 (Closed): mark shell scripts as executable in the distribution tar.gz archivehttps://forge.ispras.ru/issues/59662015-05-20T13:57:22ZSergey Smolovsmolov@ispras.ru
<p>When unpacked the <code>tar.gz</code> tool distribution contains shell scripts like <code>compile.sh</code> and <code>generate.sh</code> that are not marked as executable.</p> C++TESK Testing ToolKit - Bug #4005 (Rejected): удалить пустой READMEhttps://forge.ispras.ru/issues/40052013-03-15T14:17:10ZSergey Smolovsmolov@ispras.ru
<p>Что делает пустой файл README в trunk основного проекта?</p> C++TESK Testing ToolKit - Bug #4004 (Closed): Из build'а пропал скрипт install-eclipse-plugin.shhttps://forge.ispras.ru/issues/40042013-03-14T17:36:57ZSergey Smolovsmolov@ispras.ru
<p>Т.е. в trunk проекта он есть, а в сборке не присутствует. <br />Без данного скрипта пропадает возможность установить C++TesK Eclipse plug-in из командной строки.</p>
<p>Просьба починить.</p> C++TESK Testing ToolKit - Bug #3590 (Closed): C++TesK installation fails on OpenSUSE 12.2 x64https://forge.ispras.ru/issues/35902012-10-15T11:18:40ZSergey Smolovsmolov@ispras.ru
<p>Попробовал установить subj на OpenSUSE 12.2 x64. Системные требования были удовлетворены (в соответствии с C++TESK.InstallationGuide.ru.pdf), скрипт установки запускался с опцией --force-install-veritool (Veritool и Icarus Verilog предварительно установлены не были, подключение к сети, естественно, есть).</p>
<p>По-видимому, Icarus Verilog установился корректно, а Veritool - нет.</p>
<p>Лог установочного скрипта в аттаче.</p>