Skip to content

Commit

Permalink
[Core.Test]: Add unit tests for add, addi
Browse files Browse the repository at this point in the history
  • Loading branch information
muqiuhan committed Nov 10, 2024
1 parent 4c65673 commit 4451b97
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 4 deletions.
12 changes: 12 additions & 0 deletions RISCV.NET.Core.Test/Instructions.fs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,18 @@ open RISCV.NET.Core.StartUp
[<Test>]
let Addi () =
let gen = Gen("addi", [| "addi x29, x0, 5"; "addi x30, x0, 37" |])
let cpu = CPU(gen.Code)
cpu.StartUp()

Assert.That(cpu.Registers[29], Is.EqualTo 5)
Assert.That(cpu.Registers[30], Is.EqualTo 37)

[<Test>]
let Add () =
let gen =
Gen("addi", [| "addi x29, x0, 5"; "addi x30, x0, 37"; "add x31, x30, x29" |])

let cpu = CPU(gen.Code)
cpu.StartUp()

Assert.That(cpu.Registers[31], Is.EqualTo 42)
6 changes: 3 additions & 3 deletions RISCV.NET.Core/StartUp.fs
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ open RISCV.NET.Core.Instructions

type CPU with
member this.StartUp() =
Log.Info "Startup..."
Log.Info "---------- BEGIN ----------"

while this.PC < (this.Dram.Length |> uint64) do
let instruction = this.Fetch()
Log.Info $"Fetching instruction: 0x%07X{instruction}"
Log.Info $"Fetching: 0x%07X{instruction}"
this.Execute instruction
this.PC <- this.PC + 4UL

Log.Info "End..."
Log.Info "----------- END -----------"
this.DumpRegisters()
8 changes: 7 additions & 1 deletion riscv.net.sln.DotSettings.user
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/Environment/Hierarchy/Build/BuildTool/RecentDotNetCliExePaths/=_002Fhome_002Fmuqiu_002FApplications_002Fdotnet_002Fdotnet/@EntryIndexedValue">True</s:Boolean>
<s:String x:Key="/Default/Environment/Hierarchy/Build/BuildTool/DotNetCliExePath/@EntryValue">/home/muqiu/Applications/dotnet/dotnet</s:String>
<s:String x:Key="/Default/Environment/Hierarchy/Build/BuildTool/CustomBuildToolPath/@EntryValue">/home/muqiu/Applications/dotnet/sdk/9.0.100-rc.2.24474.11/MSBuild.dll</s:String></wpf:ResourceDictionary>
<s:String x:Key="/Default/Environment/Hierarchy/Build/BuildTool/CustomBuildToolPath/@EntryValue">/home/muqiu/Applications/dotnet/sdk/9.0.100-rc.2.24474.11/MSBuild.dll</s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=36141de5_002D6226_002D4050_002D9a84_002D9deaa6775780/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" IsActive="True" Name="Addi" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;
&lt;TestAncestor&gt;
&lt;TestId&gt;NUnit3x::1CB3715D-92DE-4D74-BD8D-DFDC1AFA4151::net9.0::RISCV.NET.Core.Tests.Addi.Addi&lt;/TestId&gt;
&lt;TestId&gt;NUnit3x::1CB3715D-92DE-4D74-BD8D-DFDC1AFA4151::net9.0::RISCV.NET.Core.Tests.Addi.Add&lt;/TestId&gt;
&lt;/TestAncestor&gt;
&lt;/SessionState&gt;</s:String></wpf:ResourceDictionary>

0 comments on commit 4451b97

Please sign in to comment.