UNPKG

asmimproved-dbgmits

Version:

Provides the ability to control GDB and LLDB programmatically via GDB/MI.

64 lines 6.3 kB
"use strict"; var test_utils_1 = require('./test_utils'); var chai = require('chai'); var chaiAsPromised = require('chai-as-promised'); chai.use(chaiAsPromised); // aliases var expect = chai.expect; // the directory in which Gruntfile.js resides is also Mocha's working directory, // so any relative paths will be relative to that directory var sourceFilename = './test/source_line_resolver_tests_target.cpp'; var firstLineNumber = 1; var mainFuncNameLineNumber = 3; var mainFuncReturnLineNumber = 5; var lastLineNumber = 8; describe("SourceLineResolver", function () { describe("#loadSourceFileSync()", function () { it("Loads an existing source file", function () { var resolver = test_utils_1.SourceLineResolver.loadSourceFileSync(sourceFilename); expect(resolver).is.not.undefined; expect(resolver).is.not.null; }); }); describe("#getMatchingLineNumber()", function () { var resolver; beforeEach(function () { resolver = test_utils_1.SourceLineResolver.loadSourceFileSync(sourceFilename); }); it("Returns the line number for a RegExp that matches the first line", function () { var lineNumber = resolver.getMatchingLineNumber(/^\/\/ first line/); expect(lineNumber).to.equal(firstLineNumber); }); it("Returns the line number for a RegExp that matches the last line", function () { var lineNumber = resolver.getMatchingLineNumber(/^\/\/ last line/); expect(lineNumber).to.equal(lastLineNumber); }); it("Returns the line number for a RegExp that matches the main function", function () { var lineNumber = resolver.getMatchingLineNumber(/^int main/); expect(lineNumber).to.equal(mainFuncNameLineNumber); }); it("Returns the number of the first matching line for a RegExp that matches multiple lines", function () { var lineNumber = resolver.getMatchingLineNumber(/^\/\/.*/); expect(lineNumber).to.equal(firstLineNumber); }); }); describe("#getLineNumberOfComment()", function () { var resolver; beforeEach(function () { resolver = test_utils_1.SourceLineResolver.loadSourceFileSync(sourceFilename); }); it("Returns the line number for the comment on the first line", function () { var lineNumber = resolver.getCommentLineNumber('first line'); expect(lineNumber).to.equal(firstLineNumber); }); it("Return the line number for a comment at the end of a line of code", function () { var lineNumber = resolver.getCommentLineNumber('return value'); expect(lineNumber).to.equal(mainFuncReturnLineNumber); }); it("Returns the line number for the comment on the last line", function () { var lineNumber = resolver.getCommentLineNumber("last line (and it's missing a line terminator)"); expect(lineNumber).to.equal(lastLineNumber); }); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlX2xpbmVfcmVzb2x2ZXJfdGVzdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90ZXN0L3NvdXJjZV9saW5lX3Jlc29sdmVyX3Rlc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwyQkFBbUMsY0FBYyxDQUFDLENBQUE7QUFDbEQsSUFBWSxJQUFJLFdBQU0sTUFBTSxDQUFDLENBQUE7QUFDN0IsSUFBTyxjQUFjLFdBQVcsa0JBQWtCLENBQUMsQ0FBQztBQUVwRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBRXpCLFVBQVU7QUFDVixJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0FBRTNCLGlGQUFpRjtBQUNqRiwyREFBMkQ7QUFDM0QsSUFBTSxjQUFjLEdBQUcsOENBQThDLENBQUM7QUFDdEUsSUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDO0FBQzFCLElBQU0sc0JBQXNCLEdBQUcsQ0FBQyxDQUFDO0FBQ2pDLElBQU0sd0JBQXdCLEdBQUcsQ0FBQyxDQUFDO0FBQ25DLElBQU0sY0FBYyxHQUFHLENBQUMsQ0FBQztBQUV6QixRQUFRLENBQUMsb0JBQW9CLEVBQUU7SUFDN0IsUUFBUSxDQUFDLHVCQUF1QixFQUFFO1FBQ2hDLEVBQUUsQ0FBQywrQkFBK0IsRUFBRTtZQUNuQyxJQUFNLFFBQVEsR0FBRywrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN0RSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7WUFDbEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsMEJBQTBCLEVBQUU7UUFDbkMsSUFBSSxRQUE0QixDQUFDO1FBRWpDLFVBQVUsQ0FBQztZQUNULFFBQVEsR0FBRywrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxrRUFBa0UsRUFBRTtZQUNyRSxJQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUN0RSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxpRUFBaUUsRUFBRTtZQUNwRSxJQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMscUJBQXFCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNyRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxxRUFBcUUsRUFBRTtZQUN4RSxJQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDL0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx3RkFBd0YsRUFBRTtZQUMzRixJQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQywyQkFBMkIsRUFBRTtRQUNwQyxJQUFJLFFBQTRCLENBQUM7UUFFakMsVUFBVSxDQUFDO1lBQ1QsUUFBUSxHQUFHLCtCQUFrQixDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDJEQUEyRCxFQUFFO1lBQzlELElBQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMvRCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxtRUFBbUUsRUFBRTtZQUN0RSxJQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDakUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywwREFBMEQsRUFBRTtZQUM3RCxJQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUMsZ0RBQWdELENBQUMsQ0FBQztZQUNuRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==