Skip to content

Commit

Permalink
Simplifying test inputs
Browse files Browse the repository at this point in the history
  • Loading branch information
robinhilliard committed Dec 7, 2019
1 parent 36a965a commit 87143be
Showing 1 changed file with 20 additions and 327 deletions.
347 changes: 20 additions & 327 deletions test/mavlink_task_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ defmodule MAVLink.Test.Tasks do
use ExUnit.Case
import Mix.Tasks.Mavlink

@input "#{File.cwd!()}/test/input/common.xml"
@input "#{File.cwd!()}/test/input/test_mavlink.xml"
@output_dir "#{File.cwd!()}/test/output"
@output "#{@output_dir}/common.ex"
@output_module "Common"
@output "#{@output_dir}/test_mavlink.ex"
@output_module "TestMavlink"

test "generate" do
# Setup output directory
Expand All @@ -22,333 +22,26 @@ defmodule MAVLink.Test.Tasks do
Code.compiler_options(ignore_module_conflict: true)

# Confirm the list of modules generated from common.xml and its includes
pairs =
Enum.zip(
[
Elixir.Common,
Elixir.Common.Message.ActuatorControlTarget,
Elixir.Common.Message.AdsbVehicle,
Elixir.Common.Message.Altitude,
Elixir.Common.Message.AttPosMocap,
Elixir.Common.Message.Attitude,
Elixir.Common.Message.AttitudeQuaternion,
Elixir.Common.Message.AttitudeQuaternionCov,
Elixir.Common.Message.AttitudeTarget,
Elixir.Common.Message.AuthKey,
Elixir.Common.Message.AutopilotVersion,
Elixir.Common.Message.BatteryStatus,
Elixir.Common.Message.ButtonChange,
Elixir.Common.Message.CameraCaptureStatus,
Elixir.Common.Message.CameraImageCaptured,
Elixir.Common.Message.CameraInformation,
Elixir.Common.Message.CameraSettings,
Elixir.Common.Message.CameraTrigger,
Elixir.Common.Message.ChangeOperatorControl,
Elixir.Common.Message.ChangeOperatorControlAck,
Elixir.Common.Message.Collision,
Elixir.Common.Message.CommandAck,
Elixir.Common.Message.CommandInt,
Elixir.Common.Message.CommandLong,
Elixir.Common.Message.ControlSystemState,
Elixir.Common.Message.DataStream,
Elixir.Common.Message.DataTransmissionHandshake,
Elixir.Common.Message.Debug,
Elixir.Common.Message.DebugFloatArray,
Elixir.Common.Message.DebugVect,
Elixir.Common.Message.DistanceSensor,
Elixir.Common.Message.EncapsulatedData,
Elixir.Common.Message.EstimatorStatus,
Elixir.Common.Message.ExtendedSysState,
Elixir.Common.Message.FileTransferProtocol,
Elixir.Common.Message.FlightInformation,
Elixir.Common.Message.FollowTarget,
Elixir.Common.Message.GlobalPositionInt,
Elixir.Common.Message.GlobalPositionIntCov,
Elixir.Common.Message.GlobalVisionPositionEstimate,
Elixir.Common.Message.Gps2Raw,
Elixir.Common.Message.Gps2Rtk,
Elixir.Common.Message.GpsGlobalOrigin,
Elixir.Common.Message.GpsInjectData,
Elixir.Common.Message.GpsInput,
Elixir.Common.Message.GpsRawInt,
Elixir.Common.Message.GpsRtcmData,
Elixir.Common.Message.GpsRtk,
Elixir.Common.Message.GpsStatus,
Elixir.Common.Message.Heartbeat,
Elixir.Common.Message.HighLatency,
Elixir.Common.Message.HighresImu,
Elixir.Common.Message.HilActuatorControls,
Elixir.Common.Message.HilControls,
Elixir.Common.Message.HilGps,
Elixir.Common.Message.HilOpticalFlow,
Elixir.Common.Message.HilRcInputsRaw,
Elixir.Common.Message.HilSensor,
Elixir.Common.Message.HilState,
Elixir.Common.Message.HilStateQuaternion,
Elixir.Common.Message.HomePosition,
Elixir.Common.Message.LandingTarget,
Elixir.Common.Message.LocalPositionNed,
Elixir.Common.Message.LocalPositionNedCov,
Elixir.Common.Message.LocalPositionNedSystemGlobalOffset,
Elixir.Common.Message.LogData,
Elixir.Common.Message.LogEntry,
Elixir.Common.Message.LogErase,
Elixir.Common.Message.LogRequestData,
Elixir.Common.Message.LogRequestEnd,
Elixir.Common.Message.LogRequestList,
Elixir.Common.Message.LoggingAck,
Elixir.Common.Message.LoggingData,
Elixir.Common.Message.LoggingDataAcked,
Elixir.Common.Message.ManualControl,
Elixir.Common.Message.ManualSetpoint,
Elixir.Common.Message.MemoryVect,
Elixir.Common.Message.MessageInterval,
Elixir.Common.Message.MissionAck,
Elixir.Common.Message.MissionClearAll,
Elixir.Common.Message.MissionCount,
Elixir.Common.Message.MissionCurrent,
Elixir.Common.Message.MissionItem,
Elixir.Common.Message.MissionItemInt,
Elixir.Common.Message.MissionItemReached,
Elixir.Common.Message.MissionRequest,
Elixir.Common.Message.MissionRequestInt,
Elixir.Common.Message.MissionRequestList,
Elixir.Common.Message.MissionRequestPartialList,
Elixir.Common.Message.MissionSetCurrent,
Elixir.Common.Message.MissionWritePartialList,
Elixir.Common.Message.MountOrientation,
Elixir.Common.Message.NamedValueFloat,
Elixir.Common.Message.NamedValueInt,
Elixir.Common.Message.NavControllerOutput,
Elixir.Common.Message.ObstacleDistance,
Elixir.Common.Message.Odometry,
Elixir.Common.Message.OpticalFlow,
Elixir.Common.Message.OpticalFlowRad,
Elixir.Common.Message.ParamMapRc,
Elixir.Common.Message.ParamRequestList,
Elixir.Common.Message.ParamRequestRead,
Elixir.Common.Message.ParamSet,
Elixir.Common.Message.ParamValue,
Elixir.Common.Message.Ping,
Elixir.Common.Message.PlayTune,
Elixir.Common.Message.PositionTargetGlobalInt,
Elixir.Common.Message.PositionTargetLocalNed,
Elixir.Common.Message.PowerStatus,
Elixir.Common.Message.RadioStatus,
Elixir.Common.Message.RawImu,
Elixir.Common.Message.RawPressure,
Elixir.Common.Message.RcChannels,
Elixir.Common.Message.RcChannelsOverride,
Elixir.Common.Message.RcChannelsRaw,
Elixir.Common.Message.RcChannelsScaled,
Elixir.Common.Message.RequestDataStream,
Elixir.Common.Message.ResourceRequest,
Elixir.Common.Message.SafetyAllowedArea,
Elixir.Common.Message.SafetySetAllowedArea,
Elixir.Common.Message.ScaledImu,
Elixir.Common.Message.ScaledImu2,
Elixir.Common.Message.ScaledImu3,
Elixir.Common.Message.ScaledPressure,
Elixir.Common.Message.ScaledPressure2,
Elixir.Common.Message.ScaledPressure3,
Elixir.Common.Message.SerialControl,
Elixir.Common.Message.ServoOutputRaw,
Elixir.Common.Message.SetActuatorControlTarget,
Elixir.Common.Message.SetAttitudeTarget,
Elixir.Common.Message.SetGpsGlobalOrigin,
Elixir.Common.Message.SetHomePosition,
Elixir.Common.Message.SetMode,
Elixir.Common.Message.SetPositionTargetGlobalInt,
Elixir.Common.Message.SetPositionTargetLocalNed,
Elixir.Common.Message.SetupSigning,
# Elixir.Common.Message.SimState,
Elixir.Common.Message.Statustext,
Elixir.Common.Message.StatustextLong,
Elixir.Common.Message.StorageInformation,
Elixir.Common.Message.SysStatus,
Elixir.Common.Message.SystemTime,
Elixir.Common.Message.TerrainCheck,
Elixir.Common.Message.TerrainData,
Elixir.Common.Message.TerrainReport,
Elixir.Common.Message.TerrainRequest,
Elixir.Common.Message.Timesync,
Elixir.Common.Message.UavcanNodeInfo,
Elixir.Common.Message.UavcanNodeStatus,
Elixir.Common.Message.V2Extension,
Elixir.Common.Message.VfrHud,
Elixir.Common.Message.Vibration,
Elixir.Common.Message.ViconPositionEstimate,
Elixir.Common.Message.VisionPositionEstimate,
Elixir.Common.Message.VisionSpeedEstimate,
Elixir.Common.Message.WheelDistance,
Elixir.Common.Message.WifiConfigAp,
Elixir.Common.Message.WindCov,
Elixir.Common.Types,
MAVLink.Message.Common.Message.ActuatorControlTarget,
MAVLink.Message.Common.Message.AdsbVehicle,
MAVLink.Message.Common.Message.Altitude,
MAVLink.Message.Common.Message.AttPosMocap,
MAVLink.Message.Common.Message.Attitude,
MAVLink.Message.Common.Message.AttitudeQuaternion,
MAVLink.Message.Common.Message.AttitudeQuaternionCov,
MAVLink.Message.Common.Message.AttitudeTarget,
MAVLink.Message.Common.Message.AuthKey,
MAVLink.Message.Common.Message.AutopilotVersion,
MAVLink.Message.Common.Message.BatteryStatus,
MAVLink.Message.Common.Message.ButtonChange,
MAVLink.Message.Common.Message.CameraCaptureStatus,
MAVLink.Message.Common.Message.CameraImageCaptured,
MAVLink.Message.Common.Message.CameraInformation,
MAVLink.Message.Common.Message.CameraSettings,
MAVLink.Message.Common.Message.CameraTrigger,
MAVLink.Message.Common.Message.ChangeOperatorControl,
MAVLink.Message.Common.Message.ChangeOperatorControlAck,
MAVLink.Message.Common.Message.Collision,
MAVLink.Message.Common.Message.CommandAck,
MAVLink.Message.Common.Message.CommandInt,
MAVLink.Message.Common.Message.CommandLong,
MAVLink.Message.Common.Message.ControlSystemState,
MAVLink.Message.Common.Message.DataStream,
MAVLink.Message.Common.Message.DataTransmissionHandshake,
MAVLink.Message.Common.Message.Debug,
MAVLink.Message.Common.Message.DebugFloatArray,
MAVLink.Message.Common.Message.DebugVect,
MAVLink.Message.Common.Message.DistanceSensor,
MAVLink.Message.Common.Message.EncapsulatedData,
MAVLink.Message.Common.Message.EstimatorStatus,
MAVLink.Message.Common.Message.ExtendedSysState,
MAVLink.Message.Common.Message.FileTransferProtocol,
MAVLink.Message.Common.Message.FlightInformation,
MAVLink.Message.Common.Message.FollowTarget,
MAVLink.Message.Common.Message.GlobalPositionInt,
MAVLink.Message.Common.Message.GlobalPositionIntCov,
MAVLink.Message.Common.Message.GlobalVisionPositionEstimate,
MAVLink.Message.Common.Message.Gps2Raw,
MAVLink.Message.Common.Message.Gps2Rtk,
MAVLink.Message.Common.Message.GpsGlobalOrigin,
MAVLink.Message.Common.Message.GpsInjectData,
MAVLink.Message.Common.Message.GpsInput,
MAVLink.Message.Common.Message.GpsRawInt,
MAVLink.Message.Common.Message.GpsRtcmData,
MAVLink.Message.Common.Message.GpsRtk,
MAVLink.Message.Common.Message.GpsStatus,
MAVLink.Message.Common.Message.Heartbeat,
MAVLink.Message.Common.Message.HighLatency,
MAVLink.Message.Common.Message.HighresImu,
MAVLink.Message.Common.Message.HilActuatorControls,
MAVLink.Message.Common.Message.HilControls,
MAVLink.Message.Common.Message.HilGps,
MAVLink.Message.Common.Message.HilOpticalFlow,
MAVLink.Message.Common.Message.HilRcInputsRaw,
MAVLink.Message.Common.Message.HilSensor,
MAVLink.Message.Common.Message.HilState,
MAVLink.Message.Common.Message.HilStateQuaternion,
MAVLink.Message.Common.Message.HomePosition,
MAVLink.Message.Common.Message.LandingTarget,
MAVLink.Message.Common.Message.LocalPositionNed,
MAVLink.Message.Common.Message.LocalPositionNedCov,
MAVLink.Message.Common.Message.LocalPositionNedSystemGlobalOffset,
MAVLink.Message.Common.Message.LogData,
MAVLink.Message.Common.Message.LogEntry,
MAVLink.Message.Common.Message.LogErase,
MAVLink.Message.Common.Message.LogRequestData,
MAVLink.Message.Common.Message.LogRequestEnd,
MAVLink.Message.Common.Message.LogRequestList,
MAVLink.Message.Common.Message.LoggingAck,
MAVLink.Message.Common.Message.LoggingData,
MAVLink.Message.Common.Message.LoggingDataAcked,
MAVLink.Message.Common.Message.ManualControl,
MAVLink.Message.Common.Message.ManualSetpoint,
MAVLink.Message.Common.Message.MemoryVect,
MAVLink.Message.Common.Message.MessageInterval,
MAVLink.Message.Common.Message.MissionAck,
MAVLink.Message.Common.Message.MissionClearAll,
MAVLink.Message.Common.Message.MissionCount,
MAVLink.Message.Common.Message.MissionCurrent,
MAVLink.Message.Common.Message.MissionItem,
MAVLink.Message.Common.Message.MissionItemInt,
MAVLink.Message.Common.Message.MissionItemReached,
MAVLink.Message.Common.Message.MissionRequest,
MAVLink.Message.Common.Message.MissionRequestInt,
MAVLink.Message.Common.Message.MissionRequestList,
MAVLink.Message.Common.Message.MissionRequestPartialList,
MAVLink.Message.Common.Message.MissionSetCurrent,
MAVLink.Message.Common.Message.MissionWritePartialList,
MAVLink.Message.Common.Message.MountOrientation,
MAVLink.Message.Common.Message.NamedValueFloat,
MAVLink.Message.Common.Message.NamedValueInt,
MAVLink.Message.Common.Message.NavControllerOutput,
MAVLink.Message.Common.Message.ObstacleDistance,
MAVLink.Message.Common.Message.Odometry,
MAVLink.Message.Common.Message.OpticalFlow,
MAVLink.Message.Common.Message.OpticalFlowRad,
MAVLink.Message.Common.Message.ParamMapRc,
MAVLink.Message.Common.Message.ParamRequestList,
MAVLink.Message.Common.Message.ParamRequestRead,
MAVLink.Message.Common.Message.ParamSet,
MAVLink.Message.Common.Message.ParamValue,
MAVLink.Message.Common.Message.Ping,
MAVLink.Message.Common.Message.PlayTune,
MAVLink.Message.Common.Message.PositionTargetGlobalInt,
MAVLink.Message.Common.Message.PositionTargetLocalNed,
MAVLink.Message.Common.Message.PowerStatus,
MAVLink.Message.Common.Message.RadioStatus,
MAVLink.Message.Common.Message.RawImu,
MAVLink.Message.Common.Message.RawPressure,
MAVLink.Message.Common.Message.RcChannels,
MAVLink.Message.Common.Message.RcChannelsOverride,
MAVLink.Message.Common.Message.RcChannelsRaw,
MAVLink.Message.Common.Message.RcChannelsScaled,
MAVLink.Message.Common.Message.RequestDataStream,
MAVLink.Message.Common.Message.ResourceRequest,
MAVLink.Message.Common.Message.SafetyAllowedArea,
MAVLink.Message.Common.Message.SafetySetAllowedArea,
MAVLink.Message.Common.Message.ScaledImu,
MAVLink.Message.Common.Message.ScaledImu2,
MAVLink.Message.Common.Message.ScaledImu3,
MAVLink.Message.Common.Message.ScaledPressure,
MAVLink.Message.Common.Message.ScaledPressure2,
MAVLink.Message.Common.Message.ScaledPressure3,
MAVLink.Message.Common.Message.SerialControl,
MAVLink.Message.Common.Message.ServoOutputRaw,
MAVLink.Message.Common.Message.SetActuatorControlTarget,
MAVLink.Message.Common.Message.SetAttitudeTarget,
MAVLink.Message.Common.Message.SetGpsGlobalOrigin,
MAVLink.Message.Common.Message.SetHomePosition,
MAVLink.Message.Common.Message.SetMode,
MAVLink.Message.Common.Message.SetPositionTargetGlobalInt,
MAVLink.Message.Common.Message.SetPositionTargetLocalNed,
MAVLink.Message.Common.Message.SetupSigning,
# MAVLink.Message.Common.Message.SimState,
MAVLink.Message.Common.Message.Statustext,
MAVLink.Message.Common.Message.StatustextLong,
MAVLink.Message.Common.Message.StorageInformation,
MAVLink.Message.Common.Message.SysStatus,
MAVLink.Message.Common.Message.SystemTime,
MAVLink.Message.Common.Message.TerrainCheck,
MAVLink.Message.Common.Message.TerrainData,
MAVLink.Message.Common.Message.TerrainReport,
MAVLink.Message.Common.Message.TerrainRequest,
MAVLink.Message.Common.Message.Timesync,
MAVLink.Message.Common.Message.UavcanNodeInfo,
MAVLink.Message.Common.Message.UavcanNodeStatus,
MAVLink.Message.Common.Message.V2Extension,
MAVLink.Message.Common.Message.VfrHud,
MAVLink.Message.Common.Message.Vibration,
MAVLink.Message.Common.Message.ViconPositionEstimate,
MAVLink.Message.Common.Message.VisionPositionEstimate,
MAVLink.Message.Common.Message.VisionSpeedEstimate,
MAVLink.Message.Common.Message.WheelDistance,
MAVLink.Message.Common.Message.WifiConfigAp,
MAVLink.Message.Common.Message.WindCov
],
Code.compile_file(@output)
|> Keyword.keys()
|> Enum.sort()
)
pairs = Enum.zip(
[
MAVLink.Message.TestMavlink.Message.ChangeOperatorControl,
MAVLink.Message.TestMavlink.Message.Data16,
MAVLink.Message.TestMavlink.Message.Heartbeat,
MAVLink.Message.TestMavlink.Message.VfrHud,
TestMavlink,
TestMavlink.Message.ChangeOperatorControl,
TestMavlink.Message.Data16,
TestMavlink.Message.Heartbeat,
TestMavlink.Message.VfrHud,
TestMavlink.Types],
Code.compile_file(@output)
|> Keyword.keys()
|> Enum.sort()
)

for {expected, actual} <- pairs do
assert expected == actual
end

end
end

0 comments on commit 87143be

Please sign in to comment.