Skip to content

Commit f724d3f

Browse files
committed
Remove backend test cases from encodings
Signed-off-by: worksofliam <[email protected]>
1 parent 6c3bad7 commit f724d3f

File tree

1 file changed

+0
-208
lines changed

1 file changed

+0
-208
lines changed

src/testing/encoding.ts

Lines changed: 0 additions & 208 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
import assert from "assert";
2-
import os from "os";
32
import { Uri, workspace } from "vscode";
43
import { TestSuite } from ".";
54
import IBMi from "../api/IBMi";
65
import { Tools } from "../api/Tools";
76
import { getMemberUri } from "../filesystems/qsys/QSysFs";
87
import { instance } from "../instantiate";
9-
import { IBMiObject } from "../typings";
108
import path from "path";
119

1210
const contents = {
@@ -56,41 +54,6 @@ export const EncodingSuite: TestSuite = {
5654
},
5755

5856
tests: [
59-
{
60-
name: `Prove that input strings are messed up by CCSID`, test: async () => {
61-
const connection = instance.getConnection();
62-
let howManyTimesItMessedUpTheResult = 0;
63-
64-
for (const strCcsid in contents) {
65-
const data = contents[strCcsid as keyof typeof contents].join(``);
66-
67-
// Note that it always works with the buffer!
68-
const sqlA = `select ? as THEDATA from sysibm.sysdummy1`;
69-
const resultA = await connection?.runSQL(sqlA, { fakeBindings: [data], forceSafe: true });
70-
assert.ok(resultA?.length);
71-
72-
const sqlB = `select '${data}' as THEDATA from sysibm.sysdummy1`;
73-
const resultB = await connection?.runSQL(sqlB, { forceSafe: true });
74-
assert.ok(resultB?.length);
75-
76-
assert.strictEqual(resultA![0].THEDATA, data);
77-
if (resultB![0].THEDATA !== data) {
78-
howManyTimesItMessedUpTheResult++;
79-
}
80-
}
81-
82-
assert.ok(howManyTimesItMessedUpTheResult);
83-
}
84-
},
85-
{
86-
name: `Compare Unicode to EBCDIC successfully`, test: async () => {
87-
const connection = instance.getConnection();
88-
89-
const sql = `select table_name, table_owner from qsys2.systables where table_schema = ? and table_name = ?`;
90-
const result = await connection?.runSQL(sql, { fakeBindings: [`QSYS2`, `SYSCOLUMNS`] });
91-
assert.ok(result?.length);
92-
}
93-
},
9457
{
9558
name: `Files and directories with spaces`, test: async () => {
9659
const connection = instance.getConnection()!;
@@ -129,55 +92,6 @@ export const EncodingSuite: TestSuite = {
12992
});
13093
}
13194
},
132-
{
133-
name: `Run variants through shells`, test: async () => {
134-
const connection = instance.getConnection();
135-
136-
const text = `Hello${connection?.variantChars.local}world`;
137-
const basicCommandA = `echo "${IBMi.escapeForShell(text)}"`;
138-
const basicCommandB = `echo '${text}'`;
139-
const basicCommandC = `echo 'abc'\\''123'`;
140-
const printEscapeChar = `echo "\\\\"`;
141-
const setCommand = `set`;
142-
143-
const setResult = await connection?.sendQsh({ command: setCommand });
144-
145-
const qshEscapeResult = await connection?.sendQsh({ command: printEscapeChar });
146-
const paseEscapeResult = await connection?.sendCommand({ command: printEscapeChar });
147-
148-
console.log(qshEscapeResult?.stdout);
149-
console.log(paseEscapeResult?.stdout);
150-
151-
const qshTextResultA = await connection?.sendQsh({ command: basicCommandA });
152-
const paseTextResultA = await connection?.sendCommand({ command: basicCommandA });
153-
154-
const qshTextResultB = await connection?.sendQsh({ command: basicCommandB });
155-
const paseTextResultB = await connection?.sendCommand({ command: basicCommandB });
156-
157-
const qshTextResultC = await connection?.sendQsh({ command: basicCommandC });
158-
const paseTextResultC = await connection?.sendCommand({ command: basicCommandC });
159-
160-
assert.strictEqual(paseEscapeResult?.stdout, `\\`);
161-
assert.strictEqual(qshTextResultA?.stdout, text);
162-
assert.strictEqual(paseTextResultA?.stdout, text);
163-
assert.strictEqual(qshTextResultB?.stdout, text);
164-
assert.strictEqual(paseTextResultB?.stdout, text);
165-
}
166-
},
167-
{
168-
name: `streamfileResolve with dollar`, test: async () => {
169-
const connection = instance.getConnection()!;
170-
171-
await connection.withTempDirectory(async tempDir => {
172-
const tempFile = path.posix.join(tempDir, `$hello`);
173-
await connection.content.createStreamFile(tempFile);
174-
175-
const resolved = await connection.content.streamfileResolve([tempFile], [`/`]);
176-
177-
assert.strictEqual(resolved, tempFile);
178-
});
179-
}
180-
},
18195
...SHELL_CHARS.map(char => ({
18296
name: `Test streamfiles with shell character ${char}`, test: async () => {
18397
const connection = instance.getConnection()!;
@@ -256,128 +170,6 @@ export const EncodingSuite: TestSuite = {
256170
assert.ok(fileContent.includes(`Woah`));
257171
}
258172
})),
259-
{
260-
name: "Listing objects with variants",
261-
test: async () => {
262-
const connection = instance.getConnection();
263-
const content = instance.getConnection()?.content;
264-
if (connection && content) {
265-
const tempLib = connection.config?.tempLibrary!;
266-
const ccsid = connection.getCcsid();
267-
268-
let library = `TESTLIB${connection.variantChars.local}`;
269-
let skipLibrary = false;
270-
const sourceFile = `${connection.variantChars.local}TESTFIL`;
271-
const dataArea = `TSTDTA${connection.variantChars.local}`;
272-
const members: string[] = [];
273-
274-
for (let i = 0; i < 5; i++) {
275-
members.push(`TSTMBR${connection.variantChars.local}${i}`);
276-
}
277-
278-
await connection.runCommand({ command: `DLTLIB LIB(${library})`, noLibList: true });
279-
280-
const crtLib = await connection.runCommand({ command: `CRTLIB LIB(${library}) TYPE(*PROD)`, noLibList: true });
281-
if (Tools.parseMessages(crtLib.stderr).findId("CPD0032")) {
282-
//Not authorized: carry on, skip library name test
283-
library = tempLib;
284-
skipLibrary = true
285-
}
286-
287-
let commands: string[] = [];
288-
289-
commands.push(`CRTSRCPF FILE(${library}/${sourceFile}) RCDLEN(112) CCSID(${ccsid})`);
290-
for (const member of members) {
291-
commands.push(`ADDPFM FILE(${library}/${sourceFile}) MBR(${member}) SRCTYPE(TXT) TEXT('Test ${member}')`);
292-
}
293-
294-
commands.push(`CRTDTAARA DTAARA(${library}/${dataArea}) TYPE(*CHAR) LEN(50) VALUE('hi')`);
295-
296-
// runCommandsWithCCSID proves that using variant characters in runCommand works!
297-
const result = await runCommandsWithCCSID(connection, commands, ccsid);
298-
assert.strictEqual(result.code, 0);
299-
300-
if (!skipLibrary) {
301-
const [expectedLibrary] = await content.getLibraries({ library });
302-
assert.ok(expectedLibrary);
303-
assert.strictEqual(library, expectedLibrary.name);
304-
305-
const validated = await connection.content.validateLibraryList([tempLib, library]);
306-
assert.strictEqual(validated.length, 0);
307-
308-
const libl = await content.getLibraryList([library]);
309-
assert.strictEqual(libl.length, 1);
310-
assert.strictEqual(libl[0].name, library);
311-
}
312-
313-
const checkFile = (expectedObject: IBMiObject) => {
314-
assert.ok(expectedObject);
315-
assert.ok(expectedObject.sourceFile, `${expectedObject.name} not a source file`);
316-
assert.strictEqual(expectedObject.name, sourceFile);
317-
assert.strictEqual(expectedObject.library, library);
318-
};
319-
320-
const nameFilter = await content.getObjectList({ library, types: ["*ALL"], object: `${connection.variantChars.local[0]}*` });
321-
assert.strictEqual(nameFilter.length, 1);
322-
assert.ok(nameFilter.some(obj => obj.library === library && obj.type === `*FILE` && obj.name === sourceFile));
323-
324-
const objectList = await content.getObjectList({ library, types: ["*ALL"] });
325-
assert.ok(objectList.some(obj => obj.library === library && obj.type === `*FILE` && obj.name === sourceFile && obj.sourceFile === true));
326-
assert.ok(objectList.some(obj => obj.library === library && obj.type === `*DTAARA` && obj.name === dataArea));
327-
328-
const expectedMembers = await content.getMemberList({ library, sourceFile });
329-
assert.ok(expectedMembers);
330-
assert.ok(expectedMembers.every(member => members.find(m => m === member.name && member.text?.includes(m))));
331-
332-
const sourceFilter = await content.getObjectList({ library, types: ["*SRCPF"], object: `${connection.variantChars.local[0]}*` });
333-
assert.strictEqual(sourceFilter.length, 1);
334-
assert.ok(sourceFilter.some(obj => obj.library === library && obj.type === `*FILE` && obj.name === sourceFile));
335-
336-
const [expectDataArea] = await content.getObjectList({ library, object: dataArea, types: ["*DTAARA"] });
337-
assert.strictEqual(expectDataArea.name, dataArea);
338-
assert.strictEqual(expectDataArea.library, library);
339-
assert.strictEqual(expectDataArea.type, `*DTAARA`);
340-
341-
const [expectedSourceFile] = await content.getObjectList({ library, object: sourceFile, types: ["*SRCPF"] });
342-
checkFile(expectedSourceFile);
343-
344-
}
345-
}
346-
},
347-
{
348-
name: `Library list supports dollar sign variant`, test: async () => {
349-
const connection = instance.getConnection()!;
350-
const library = `TEST${connection.variantChars.local}LIB`;
351-
const sourceFile = `TEST${connection.variantChars.local}FIL`;
352-
const member = `TEST${connection.variantChars.local}MBR`;
353-
const ccsid = connection.getCcsid();
354-
355-
if (library.includes(`$`)) {
356-
await connection.runCommand({ command: `DLTLIB LIB(${library})`, noLibList: true });
357-
358-
const crtLib = await connection.runCommand({ command: `CRTLIB LIB(${library}) TYPE(*PROD)`, noLibList: true });
359-
if (Tools.parseMessages(crtLib.stderr).findId("CPD0032")) {
360-
return;
361-
}
362-
363-
const createSourceFileCommand = await connection.runCommand({ command: `CRTSRCPF FILE(${library}/${sourceFile}) RCDLEN(112) CCSID(${ccsid})`, noLibList: true });
364-
assert.strictEqual(createSourceFileCommand.code, 0);
365-
366-
const addPf = await connection.runCommand({ command: `ADDPFM FILE(${library}/${sourceFile}) MBR(${member}) SRCTYPE(TXT)`, noLibList: true });
367-
assert.strictEqual(addPf.code, 0);
368-
369-
await connection.content.uploadMemberContent(undefined, library, sourceFile, member, [`**free`, `dsply 'Hello world';`, `return;`].join(`\n`));
370-
371-
// Ensure program compiles with dollar sign in current library
372-
const compileResultA = await connection.runCommand({ command: `CRTBNDRPG PGM(${library}/${member}) SRCFILE(${library}/${sourceFile}) SRCMBR(${member})`, env: {'&CURLIB': library} });
373-
assert.strictEqual(compileResultA.code, 0);
374-
375-
// Ensure program compiles with dollar sign in current library
376-
const compileResultB = await connection.runCommand({ command: `CRTBNDRPG PGM(${library}/${member}) SRCFILE(${library}/${sourceFile}) SRCMBR(${member})`, env: {'&LIBL': library} });
377-
assert.strictEqual(compileResultB.code, 0);
378-
}
379-
}
380-
},
381173
{
382174
name: `Variant character in source names and commands`, test: async () => {
383175
// CHGUSRPRF X CCSID(284) CNTRYID(ES) LANGID(ESP)

0 commit comments

Comments
 (0)