UNPKG

asmimproved-dbgmits

Version:

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

78 lines 8.07 kB
// Copyright (c) 2015 Vadim Macagon // MIT License, see LICENSE file for full terms. "use strict"; require('source-map-support').install(); var chai = require('chai'); var chaiAsPromised = require('chai-as-promised'); var test_utils_1 = require('./test_utils'); 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 localTargetExe = './build/Debug/thread_tests_target'; test_utils_1.logSuite(describe("Debug Session", function () { var debugSession; test_utils_1.beforeEachTestWithLogger(function (logger) { debugSession = test_utils_1.startDebugSession(logger); return debugSession.setExecutableFile(localTargetExe); }); afterEach(function () { return debugSession.end(); }); describe("#getThread()", function () { it("gets information about thread 1", function () { return test_utils_1.runToFunc(debugSession, 'main', function () { return debugSession.getThread(1) .then(function (info) { expect(info).to.have.property('id', 1); expect(info).to.have.property('isStopped', true); }); }); }); // FIXME: re-enable for LLDB when LLDB-MI stops crashing when processin -thread-info 2 it("gets information about thread 2 @skipOnLLDB", function () { return debugSession.setInferiorArguments('--threads 2') .then(function () { return test_utils_1.runToFunc(debugSession, 'funcA', function () { return debugSession.getThread(2) .then(function (info) { expect(info).to.have.property('id', 2); expect(info).to.have.property('isStopped', true); }); }); }); }); }); // describe #getThread() describe("#getThreads()", function () { // FIXME: re-enable for LLDB when LLDB-MI starts returning the current thread id in the // result for -thread-info it("gets thread list from a single-threaded inferior @skipOnLLDB", function () { return test_utils_1.runToFunc(debugSession, 'main', function () { return debugSession.getThreads() .then(function (info) { expect(info).to.have.property('all').which.has.property('length', 1); expect(info).to.have.property('current').which.equals(info.all[0]); expect(info.current).to.have.property('id', 1); expect(info.current).to.have.property('isStopped', true); }); }); }); // FIXME: same issue when using LLDB-MI as above it("gets thread list from a multi-threaded inferior @skipOnLLDB", function () { return debugSession.setInferiorArguments('--threads 2') .then(function () { return test_utils_1.runToFunc(debugSession, 'funcA', function () { return debugSession.getThreads() .then(function (info) { expect(info).to.have.property('all').which.has.property('length', 2); expect(info).to.have.property('current').which.equals(info.all[0]); expect(info.all[0]).to.have.property('isStopped', true); expect(info.all[1]).to.have.property('isStopped', true); }); }); }); }); }); // describe #getThreads() })); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWFkX3Rlc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdGVzdC90aHJlYWRfdGVzdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBQ25DLGdEQUFnRDs7QUFFaEQsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7QUFFeEMsSUFBWSxJQUFJLFdBQU0sTUFBTSxDQUFDLENBQUE7QUFDN0IsSUFBTyxjQUFjLFdBQVcsa0JBQWtCLENBQUMsQ0FBQztBQUdwRCwyQkFFTyxjQUFjLENBQUMsQ0FBQTtBQUV0QixJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBRXpCLFVBQVU7QUFDVixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0FBR3pCLGlGQUFpRjtBQUNqRiwyREFBMkQ7QUFDM0QsSUFBSSxjQUFjLEdBQVcsbUNBQW1DLENBQUM7QUFFakUscUJBQUcsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFO0lBQzVCLElBQUksWUFBMEIsQ0FBQztJQUUvQixxQ0FBd0IsQ0FBQyxVQUFDLE1BQXFCO1FBQzdDLFlBQVksR0FBRyw4QkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxNQUFNLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDO1FBQ1IsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxjQUFjLEVBQUU7UUFDdkIsRUFBRSxDQUFDLGlDQUFpQyxFQUFFO1lBQ3BDLE1BQU0sQ0FBQyxzQkFBUyxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUU7Z0JBQ3JDLE1BQU0sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztxQkFDL0IsSUFBSSxDQUFDLFVBQUMsSUFBeUI7b0JB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