⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testing_the_toolchain.html

📁 ADI 公司blackfin系列的用户使用文挡。
💻 HTML
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head>  <title></title>  <link rel="stylesheet" media="screen" type="text/css" href="./style.css" />  <link rel="stylesheet" media="screen" type="text/css" href="./design.css" />  <link rel="stylesheet" media="print" type="text/css" href="./print.css" />  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body><a href=start.html>start</a></br><div class="toc"><div class="tocheader toctoggle" id="toc__header">Table of Contents</div><div id="toc__inside"><ul class="toc"><li class="level1"><div class="li"><span class="li"><a href="#testing_the_toolchain" class="toc">Testing the Toolchain</a></span></div><ul class="toc"><li class="level2"><div class="li"><span class="li"><a href="#purpose" class="toc">Purpose</a></span></div></li><li class="level2"><div class="li"><span class="li"><a href="#overview" class="toc">Overview</a></span></div><ul class="toc"><li class="level3"><div class="li"><span class="li"><a href="#assembler_testing" class="toc">Assembler Testing</a></span></div></li><li class="level3"><div class="li"><span class="li"><a href="#compiler_debugger_testing" class="toc">Compiler/Debugger Testing</a></span></div></li><li class="level3"><div class="li"><span class="li"><a href="#dejagnu" class="toc">DejaGnu</a></span></div></li><li class="level3"><div class="li"><span class="li"><a href="#manual_tests" class="toc">Manual Tests</a></span></div></li></ul></li><li class="level2"><div class="li"><span class="li"><a href="#environment" class="toc">Environment</a></span></div><ul class="toc"><li class="level3"><div class="li"><span class="li"><a href="#target_configuration" class="toc">Target Configuration</a></span></div></li><li class="level3"><div class="li"><span class="li"><a href="#host_configuration" class="toc">Host Configuration</a></span></div></li></ul></li><li class="level2"><div class="li"><span class="li"><a href="#toolchain_test_steps" class="toc">Toolchain test steps</a></span></div><ul class="toc"><li class="level3"><div class="li"><span class="li"><a href="#running_the_automated_tests" class="toc">Running the Automated Tests</a></span></div></li><li class="level3"><div class="li"><span class="li"><a href="#running_the_manual_tests" class="toc">Running the Manual Tests</a></span></div></li></ul></li><li class="level2"><div class="li"><span class="li"><a href="#criteria" class="toc">Criteria</a></span></div><ul class="toc"><li class="level3"><div class="li"><span class="li"><a href="#automated_testing" class="toc">Automated Testing</a></span></div></li><li class="level3"><div class="li"><span class="li"><a href="#manual_testing" class="toc">Manual Testing</a></span></div></li></ul></li><li class="level2"><div class="li"><span class="li"><a href="#problem_reporting_and_tracking" class="toc">Problem reporting and tracking</a></span></div></li><li class="level2"><div class="li"><span class="li"><a href="#limitations" class="toc">Limitations</a></span></div></li></ul></li></ul></div></div><h1><a name="testing_the_toolchain" id="testing_the_toolchain">Testing the Toolchain</a></h1><div class="level1"></div><!-- SECTION [1-37] --><h2><a name="purpose" id="purpose">Purpose</a></h2><div class="level2"><p>The purpose of testing the toolchain is to ensure the release is stable and robust, which can be used to compile U-boot, the uClinux kernel, and any user space application written in Assembly, C or C++. </p></div><!-- SECTION [38-262] --><h2><a name="overview" id="overview">Overview</a></h2><div class="level2"><p>To test the GNU toolchain, a host system and Blackfin target are required. The host system is where the compiler (C, and C++), assembler, linker, libraries, debugger and simulator are built and run. The Blackfin target enables tests to be run on the processor ensuring that bugs in the simulator do not hide bugs in the remaining aspects of the toolchain. Since the hardware tests must be run under uClinux, it is critical to be running on a known good uClinux kernel (where the kernel is compiled with a known good toolchain). This helps remove issues with new kernel problems causing toolchain test failures.</p><p>For the 2006R1 release, there are two toolchain versions provided: gcc-3.4 and gcc-4.1. Providing two versions aims to smoothly upgrade to the more advanced toolchain which ships with more features. Both versions of the toolchain have support for compiling ELF binaries (with the -mfdpic flag) as well as FLAT format binaries (by default). For the 4 combinations of the toolchain, testing covers the assembler, compiler, debugger, as well as manual testcases to ensure everything functions correctly and as expected. </p><p>Besides, to ensure that the source in <acronym title="Concurrent Versions System">CVS</acronym> is as stable as possible, there is a platform where source code from <acronym title="Concurrent Versions System">CVS</acronym> head is checked out, and tests are run. These tests are reported to a server which displays things as a <a href="http://blackfin.uclinux.org/plugins/tinderbox/tree.php/18/6/status.html" class="urlextern" title="http://blackfin.uclinux.org/plugins/tinderbox/tree.php/18/6/status.html"  rel="nofollow">web page</a>. It is always a good idea to check the status on the page before checking out the <acronym title="Concurrent Versions System">CVS</acronym> toolchain to see if things are better or worse than the last release. This testing client/server is based on <a href="http://www.mozilla.org/tinderbox.html" class="urlextern" title="http://www.mozilla.org/tinderbox.html"  rel="nofollow">Tinderbox</a>. This allows us to find issues within hours, and make sure that <acronym title="Concurrent Versions System">CVS</acronym> stays as stable as possible.</p></div><!-- SECTION [263-2063] --><h3><a name="assembler_testing" id="assembler_testing">Assembler Testing</a></h3><div class="level3"><p>Assembler testing is completed by assembling source code into a object file, then disassembling the object file, and comparing the disassembled file to known good output. Assembler tests do not run on the hardware, leading to potential issues where the a bug in the assembler and disassembler would not be found until an end user discovers the problem. To attempt to reduce the likely hood of this occurring, the assembly source was run through the VDSP++ assembler, and disassembled with the gnu disassembler, and compared to the source. This attempts to ensure that the gnu assembler/disassembler tests match VDSP mnemonics to opcode translations as much as possible. The VDSP++ / GNU comparisons have been completed once, and are not a part of this testing procedure. Today the GNU toolchain does approximately 79 gas (assembler/disassembler) test cases, 33 binutils (disassembler, linker, librarian) cases.</p></div><!-- SECTION [2064-3003] --><h3><a name="compiler_debugger_testing" id="compiler_debugger_testing">Compiler/Debugger Testing</a></h3><div class="level3"><p>Compiler testing (both C and C++) is completed by compiling source code, and running the test program on the simulator and/or hardware and checking for expected results. 24,965 test cases for gcc, 10,171 test cases for g++. The debugger tests take this one step further, where the debugging process is also automated, and tested. There are over 9,036 test cases for the gnu debugger.</p><p>Testing on both the simulator and hardware also test the simulator, to ensure that it is simulating the Blackfin core properly. Since the tests, which are also running on the hardware, are linked against uClibc, (the libc implementation used), this also helps test the uClibc library, and find any issues with it.</p><p>The comparison of simulator and hardware provides a good benchmark to help identify the nature of where root cause may lie in test failures. (compiler, uClibc)</p></div><!-- SECTION [3004-3900] --><h3><a name="dejagnu" id="dejagnu">DejaGnu</a></h3><div class="level3"><p>To ease and automate the over 44,000 tests, checking of their expected results, a software package called dejagnu was developed. DejaGnu is a framework for testing other programs. Its purpose is to provide a single front end for all tests. This way, a simple command, like 鈥渕ake check鈥

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -