mirror of
https://github.com/Boof2015/astra-mobile.git
synced 2026-08-12 05:10:52 +02:00
57 lines
2.3 KiB
JavaScript
57 lines
2.3 KiB
JavaScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
import { buildMemoryProfile, parseGfxinfo, parseMeminfo } from './android-memory-profile.mjs';
|
|
|
|
const MEMINFO = `
|
|
EGL mtrack 80004 80004 0 0 80004
|
|
GL mtrack 395072 395072 0 0 395072
|
|
App Summary
|
|
Java Heap: 63956 101768
|
|
Native Heap: 81616 104420
|
|
Graphics: 475076 475076
|
|
Private Other: 116172
|
|
System: 232359
|
|
TOTAL PSS: 1036907 TOTAL RSS: 959676 TOTAL SWAP PSS: 224950
|
|
Native Allocations
|
|
Bitmap (malloced): 38 35541
|
|
Bitmap (nonmalloced): 5 25671
|
|
`;
|
|
|
|
const GFXINFO = `
|
|
Layers Total 14188.36 KB (numLayers = 4)
|
|
Total GPU memory usage:
|
|
36152084 bytes, 34.48 MB (2.05 KB is purgeable)
|
|
TextureView: 1440x562
|
|
TextureView: 1560x1298
|
|
TextureView: 1350x378
|
|
Total allocated by GraphicBufferAllocator (estimate): 109727.50 KB
|
|
`;
|
|
|
|
test('parses Android PSS, RSS, heap, graphics, swap, and bitmap buckets', () => {
|
|
const parsed = parseMeminfo(MEMINFO);
|
|
assert.equal(parsed.totalPssKb, 1036907);
|
|
assert.equal(parsed.totalRssKb, 959676);
|
|
assert.equal(parsed.totalSwapPssKb, 224950);
|
|
assert.equal(parsed.buckets.javaHeap?.pssKb, 63956);
|
|
assert.equal(parsed.buckets.nativeHeap?.pssKb, 81616);
|
|
assert.equal(parsed.buckets.graphics?.pssKb, 475076);
|
|
assert.equal(parsed.mtrack.glKb, 395072);
|
|
assert.equal(parsed.bitmaps.totalKb, 61212);
|
|
});
|
|
|
|
test('parses TextureViews, GPU bytes, and GraphicBufferAllocator totals', () => {
|
|
const parsed = parseGfxinfo(GFXINFO);
|
|
assert.equal(parsed.textureViewCount, 3);
|
|
assert.deepEqual(parsed.textureViews[0], { width: 1440, height: 562 });
|
|
assert.equal(parsed.gpuMemoryBytes, 36152084);
|
|
assert.equal(parsed.graphicBufferAllocatedKb, 109727.5);
|
|
assert.equal(parsed.glLayerCount, 4);
|
|
});
|
|
|
|
test('reports the agreed memory acceptance gates', () => {
|
|
const profile = buildMemoryProfile(MEMINFO, GFXINFO);
|
|
assert.equal(profile.acceptance.stretchPssAtOrBelow300Mb, false);
|
|
assert.equal(profile.acceptance.hardPssBelow400Mb, false);
|
|
assert.equal(profile.acceptance.graphicsBelow150Mb, false);
|
|
});
|