Future of COBOL support
COBOL support is being deprecated after the 1.23 release of the QL command-line tools. Future releases, starting with 1.24, will no longer feature support for analyzing COBOL source code. We are not aware of any customers who will be affected by this change. If you do have any concerns, please contact your account manager.
This tutorial helps you use the bootstrap command to create a new project for a COBOL code base.
In this tutorial you will create a new Semmle project to allow you to analyze the cobol-unit-test code base. cobol-unit-test is an open-source tool for testing individual paragraphs in COBOL programs without requiring a connection to a z/OS system. It is written in COBOL.
The tutorial covers basic use of the
odasa bootstrap tool to retrieve source files, start code analysis and export a snapshot of the project.
Time needed: 10–15 minutes
This tutorial assumes:
- You have installed release 1.18 or above of Semmle's analysis software—see Installing Semmle Core
- You have set up the environment for Semmle Core—see Setting up the environment
You have installed Git and added it to your path—see http://git-scm.com/book/en/Getting-Started-Installing-Git
Create a new project with odasa bootstrap
The quickest way to create a new Semmle analysis project is to use the
odasa bootstrap command. The bootstrap tool steps you through the process and generates configuration files that you can reuse later. The process described here gives the steps required to analyze a particular COBOL project built using cobol-unit-test. Other projects will require different responses to some of the bootstrap prompts.
The bootstrap tool's on-screen instructions indicate what you should enter at each step. However, the first time you run it, you may find it useful to refer to the following procedure for some additional information.
Open a command console.
- Change to the directory where Semmle Core is installed – for example,
- Make sure the environment is set up correctly:
Linux and OS X:
See Setting up the environment.
Enter the following command to start the bootstrap tool:
The tool guides you through the rest of the process. The remainder of the steps provided below give some additional guidance that you may find useful the first time you run the bootstrap tool.
For additional on-screen information, enter
?at any of the prompts.
Project languageThe cobol-unit-test project is written in COBOL.
The cobol-unit-test project uses Git as the version control system for its source code.
The cobol-unit-test project stores its source code in GitHub.
bootstraptool with the URL of the repository makes it possible to automatically download the latest version of the software each time an analysis is triggered.
Press Enter without specifying a branch name.
The bootstrap tool will default to cloning the code from the "master" branch for the project.
What to extract
This causes the source code for the main program of the cobol-unit-test code base to be extracted, rather than including any test code or utilities.
Source file extensions
This means that the bootstrap tool will look for source files with normal extensions, and won't look for custom file extensions.
This project is written in fixed format.
The source source files in this project do not need to be preprocessed.
Defining positions of tab stops
Press Enter–you do not need to define tab stop positions for
Defining tab length
cobol-unit-testcan be processed using the default tab length.
This means that bootstrap attempt to analyze all files that are parsed successfully.
Creating a snapshot
You have now supplied all the information needed for the project file that is used each time a snapshot is generated. You can now go ahead and create a snapshot.
This tells the bootstrap tool that you want to clone the current cobol-unit-test source files from GitHub and generate files needed to build a Semmle snapshot. This command will be run at the end of the bootstrap process.
Running a set of analyses
This tells the bootstrap tool that you want to run a set of queries to analyze the snapshot. This command will be run at the end of the bootstrap process.
Specifying an analysis suite
If you press Enter without specifying a suite the bootstrap tool will run the standard set of COBOL queries.
Alternatively, you can tell the bootstrap tool to run the same queries that are run on LGTM by specifying the LGTM query suite for COBOL:
Exporting the database archive
This tells the bootstrap tool to create a zip archive containing a snapshot in your project directory. This command will be run at the end of the bootstrap process.
The bootstrap tool now:
- Clones the current cobol-unit-test source files from GitHub, and generates files needed to build the snapshot.
- Indexes the code base, builds a snapshot, performs COBOL analysis, and saves the results of the analysis in a SARIF results file in the project directory.
- Exports the snapshot as a zip archive. You can use this snapshot to run queries in your IDE, for example using the QL for Eclipse plugin.
Completing these operations will take a few minutes.
When the bootstrap tool finishes, it displays a message like this:
Now you can view the analysis results in a SARIF viewer, or import the snapshot database into your IDE and run additional analyses.
If you see parsing errors output to the command line during analysis, it may indicate that your project has a format configuration error or uses mixed source formats. Your analysis will not fail as a result of these errors, but you should check your source format settings to ensure that you are using the correct configuration. For more information on changing the source format, see Configuring COBOL analysis.
If error messages are reported, you can investigate the problem by reviewing the log files:
Before rerunning the bootstrap process, enable prototyping mode. This will help with any further troubleshooting you need to do.
Spend some time investigating the analysis of the cobol-unit-test code base. This will help you familiarize yourself with the standard rules available for COBOL analysis.
Query the snapshot in your IDE
If you install a QL plugin or extension, you can easily write custom queries to analyze snapshots and view the results directly in your IDE.
Create more snapshots
Use the bootstrap tool to create a project for your own code base.
Work through the tutorial on advanced project creation to see some examples of the available configuration options.