Skip to content

Commit 002d05b

Browse files
authored
Renaming diagnostics functions (#27)
1 parent c1c0f0f commit 002d05b

File tree

2 files changed

+30
-29
lines changed

2 files changed

+30
-29
lines changed

src/diag.mts

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,10 @@ class MemTrackerImpl implements MemTracker {
7979
}
8080

8181
report(): any {
82-
const report: any = {};
82+
const memReport: any = {};
8383
this.disposableInfo.forEach((info) => {
84-
const classReport = report[info.classname] ||= { // eslint-disable-line no-multi-assign
84+
// eslint-disable-next-line no-multi-assign
85+
const classReport = memReport[info.classname] ||= {
8586
garbageCollected: 0,
8687
totalInstances: 0,
8788
instances: [],
@@ -102,21 +103,21 @@ class MemTrackerImpl implements MemTracker {
102103
callers[info.callstack!] = (callers[info.callstack!] || 0) + 1;
103104
}
104105
});
105-
return report;
106+
return memReport;
106107
}
107108
}
108109

109110
/**
110111
* Memory Diagnostic options.
111112
*/
112-
export interface MemDiagOptions {
113+
export interface DiagOptions {
113114
/**
114115
* Enabling the memory diagnostics.
115-
* Note the tracking information will be lost when it is disabled.
116+
* Note that the tracking information will be lost when it is disabled.
116117
*/
117118
enabled: boolean;
118119
/**
119-
* Generate the statistics of point
120+
* Generate the statistics of the callstack, for {@link disposable!XmlDisposable}.
120121
*/
121122
callerStats?: boolean;
122123
/**
@@ -135,9 +136,9 @@ export interface MemDiagOptions {
135136
* Note that the allocation will not be monitored before memory diagnostics is enabled.
136137
*
137138
* @param options
138-
* @see {@link memReport}
139+
* @see {@link report}
139140
*/
140-
export function memDiag(options: MemDiagOptions) {
141+
export function configure(options: DiagOptions) {
141142
if (options.enabled) {
142143
memTracker = new MemTrackerImpl(
143144
options.callerDetail === true,
@@ -153,9 +154,9 @@ export function memDiag(options: MemDiagOptions) {
153154
* @returns The report (JSON) object, whose format may vary according to the settings,
154155
* and is subject to change.
155156
* Returns undefined if memory diagnostic is not enabled.
156-
* @see {@link memDiag}
157+
* @see {@link configure}
157158
*/
158-
export function memReport(): any {
159+
export function report(): any {
159160
return memTracker.report();
160161
}
161162

test/crossplatform/diag.spec.mts

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import { expect } from 'chai';
22
import { diag, XmlDocument } from '@libxml2-wasm/lib/index.mjs';
33

4-
describe('memDiag', () => {
4+
describe('diagnostics', () => {
55
it('should report remaining objects', () => {
6-
diag.memDiag({ enabled: true });
6+
diag.configure({ enabled: true });
77
const xml1 = XmlDocument.fromString('<doc/>');
88
const xml2 = XmlDocument.fromString('<doc/>');
99

1010
xml1.dispose();
11-
const report = diag.memReport();
11+
const report = diag.report();
1212

1313
expect(report.XmlDocument).is.not.null;
1414
expect(report.XmlDocument.totalInstances).to.equal(1);
@@ -17,13 +17,13 @@ describe('memDiag', () => {
1717
expect(report.XmlDocument.instances[0].caller).to.be.undefined;
1818
expect(report.XmlDocument.callers).to.be.undefined;
1919
xml2.dispose();
20-
diag.memDiag({ enabled: false });
20+
diag.configure({ enabled: false });
2121
});
2222

2323
it('should report caller detail', () => {
24-
diag.memDiag({ enabled: true, callerDetail: true });
24+
diag.configure({ enabled: true, callerDetail: true });
2525
const xml = XmlDocument.fromString('<doc/>');
26-
const report = diag.memReport();
26+
const report = diag.report();
2727

2828
expect(report.XmlDocument).is.not.null;
2929
expect(report.XmlDocument.totalInstances).to.equal(1);
@@ -32,13 +32,13 @@ describe('memDiag', () => {
3232
expect(report.XmlDocument.instances[0].caller).to.be.a('string');
3333
expect(report.XmlDocument.callers).to.be.undefined;
3434
xml.dispose();
35-
diag.memDiag({ enabled: false });
35+
diag.configure({ enabled: false });
3636
});
3737

3838
it('should report caller stats', () => {
39-
diag.memDiag({ enabled: true, callerStats: true });
39+
diag.configure({ enabled: true, callerStats: true });
4040
const xml = XmlDocument.fromString('<doc/>');
41-
const report = diag.memReport();
41+
const report = diag.report();
4242

4343
expect(report.XmlDocument).is.not.null;
4444
expect(report.XmlDocument.totalInstances).to.equal(1);
@@ -47,57 +47,57 @@ describe('memDiag', () => {
4747
expect(report.XmlDocument.instances[0].caller).to.be.undefined;
4848
expect(Object.values(report.XmlDocument.callers)).to.deep.equal([1]);
4949
xml.dispose();
50-
diag.memDiag({ enabled: false });
50+
diag.configure({ enabled: false });
5151
});
5252

5353
it('could report caller stat for GC\'ed instance', async () => {
54-
diag.memDiag({ enabled: true, callerStats: true });
54+
diag.configure({ enabled: true, callerStats: true });
5555
XmlDocument.fromString('<doc/>'); // to be GC'ed
5656

5757
// allow finalizer to run
5858
await new Promise((resolve) => { setTimeout(resolve, 0); });
5959
(global as any).gc();
60-
const report = diag.memReport();
60+
const report = diag.report();
6161

6262
expect(report.XmlDocument).is.not.null;
6363
expect(report.XmlDocument.totalInstances).to.equal(1);
6464
expect(report.XmlDocument.garbageCollected).to.equal(1);
6565
expect(report.XmlDocument.instances).to.deep.equal([]);
6666
expect(Object.values(report.XmlDocument.callers)).to.deep.equal([1]);
67-
diag.memDiag({ enabled: false });
67+
diag.configure({ enabled: false });
6868
});
6969

7070
it('should report GC\'ed objects', async () => {
71-
diag.memDiag({ enabled: true });
71+
diag.configure({ enabled: true });
7272
const xml1 = XmlDocument.fromString('<doc/>');
7373
XmlDocument.fromString('<doc/>'); // to be GC'ed
7474

7575
// allow finalizer to run
7676
await new Promise((resolve) => { setTimeout(resolve, 0); });
7777
(global as any).gc();
78-
const report = diag.memReport();
78+
const report = diag.report();
7979

8080
expect(report.XmlDocument).is.not.null;
8181
expect(report.XmlDocument.totalInstances).to.equal(2);
8282
expect(report.XmlDocument.garbageCollected).to.equal(1);
8383
expect(report.XmlDocument.instances[0].instance).to.equal(xml1);
8484
xml1.dispose();
85-
diag.memDiag({ enabled: false });
85+
diag.configure({ enabled: false });
8686
});
8787

8888
it('will not track allocation before enabled', () => {
8989
const xml1 = XmlDocument.fromString('<doc/>');
90-
diag.memDiag({ enabled: true });
90+
diag.configure({ enabled: true });
9191
const xml2 = XmlDocument.fromString('<doc/>');
9292

93-
const report = diag.memReport();
93+
const report = diag.report();
9494

9595
expect(report.XmlDocument).is.not.null;
9696
expect(report.XmlDocument.totalInstances).to.equal(1);
9797
expect(report.XmlDocument.garbageCollected).to.equal(0);
9898
expect(report.XmlDocument.instances[0].instance).to.equal(xml2);
9999
xml2.dispose();
100100
xml1.dispose();
101-
diag.memDiag({ enabled: false });
101+
diag.configure({ enabled: false });
102102
});
103103
});

0 commit comments

Comments
 (0)