asmimproved-dbgmits
Version:
Provides the ability to control GDB and LLDB programmatically via GDB/MI.
64 lines • 6.3 kB
JavaScript
;
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==