Skip to content

Commit

Permalink
Add missing File Tests / Minor Tweaks (#404)
Browse files Browse the repository at this point in the history
* Add File Tests / Minor Tweaks

-Made File Pointer Dictionary Public for tests
-Changed fungetc() -> ungetc()
-Updated exceptions in 2 ordinals
-fputc()
-fgetc()
-fputs()
-fgets()
-fseek(0
-ungetc()

* Combine fseek origin1/2 tests

* changed test name
  • Loading branch information
tuday2 committed Feb 18, 2021
1 parent acf04d7 commit 8f0c118
Show file tree
Hide file tree
Showing 4 changed files with 394 additions and 9 deletions.
82 changes: 82 additions & 0 deletions MBBSEmu.Tests/ExportedModules/Majorbbs/FileTestBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,13 @@ public class FileTestBase : ExportedModuleTestBase, IDisposable
protected const int CLOSE_ORDINAL = 110;
protected const int FILELENGTH_ORDINAL = 211;

protected const int FPUTC_ORDINAL = 227;
protected const int FGETC_ORDINAL = 19;
protected const int UNGETC_ORDINAL = 615;
protected const int FSEEK_ORDINAL = 266;
protected const int FPUTS_ORDINAL = 1125;
protected const int FGETS_ORDINAL = 210;

protected FileTestBase() : base(Path.Join(Path.GetTempPath(), $"mbbsemu{RANDOM.Next()}"))
{
Directory.CreateDirectory(mbbsModule.ModulePath);
Expand Down Expand Up @@ -154,6 +161,81 @@ protected int filelength(ushort fd)
return mbbsEmuCpuRegisters.GetLong();
}

protected ushort fgetc(FarPtr srcPtr)
{
ExecuteApiTest(HostProcess.ExportedModules.Majorbbs.Segment, FGETC_ORDINAL, new List<FarPtr>
{
srcPtr
});

return mbbsEmuCpuRegisters.AX;
}

protected ushort ungetc(ushort ungetChar, FarPtr srcPtr)
{
ExecuteApiTest(HostProcess.ExportedModules.Majorbbs.Segment, UNGETC_ORDINAL, new List<ushort>
{
ungetChar,
srcPtr.Offset,
srcPtr.Segment
});

return mbbsEmuCpuRegisters.AX;
}

protected ushort fputc(ushort putChar, FarPtr srcPtr)
{
ExecuteApiTest(HostProcess.ExportedModules.Majorbbs.Segment, FPUTC_ORDINAL, new List<ushort>
{
putChar,
srcPtr.Offset,
srcPtr.Segment
});

return mbbsEmuCpuRegisters.AX;
}

protected FarPtr fgets(FarPtr putStringPtr, ushort numChars, FarPtr srcPtr)
{
ExecuteApiTest(HostProcess.ExportedModules.Majorbbs.Segment, FGETS_ORDINAL, new List<ushort>
{
putStringPtr.Offset,
putStringPtr.Segment,
numChars,
srcPtr.Offset,
srcPtr.Segment
});

return mbbsEmuCpuRegisters.GetPointer();
}

protected ushort fputs(FarPtr putStringPtr, FarPtr srcPtr)
{
ExecuteApiTest(HostProcess.ExportedModules.Majorbbs.Segment, FPUTS_ORDINAL, new List<FarPtr>
{
putStringPtr,
srcPtr
});

return mbbsEmuCpuRegisters.AX;
}

protected ushort fseek(FarPtr srcPtr, int offset, ushort origin)
{


ExecuteApiTest(HostProcess.ExportedModules.Majorbbs.Segment, FSEEK_ORDINAL, new List<ushort>
{
srcPtr.Offset,
srcPtr.Segment,
(ushort)offset,
(ushort)(offset >> 16),
origin
});

return mbbsEmuCpuRegisters.AX;
}

protected string CreateTextFile(string filename, string contents)
{
var filePath = Path.Join(mbbsModule.ModulePath, filename);
Expand Down
Loading

0 comments on commit 8f0c118

Please sign in to comment.