mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-30 18:25:16 +01:00
Don’t use google-test
This commit is contained in:
@@ -365,56 +365,12 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/g2.dat" DESTINATION share/${PROJECT})
|
||||
install(DIRECTORY data/ DESTINATION share/${PROJECT})
|
||||
install(FILES ${DOC_FILES} DESTINATION share/doc/${PROJECT})
|
||||
|
||||
INCLUDE(ExternalProject)
|
||||
|
||||
ExternalProject_Add(
|
||||
googletest-distribution
|
||||
URL https://github.com/google/googletest/archive/release-1.8.0.zip
|
||||
TIMEOUT 10
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND ""
|
||||
)
|
||||
|
||||
# Specify include dir
|
||||
ExternalProject_Get_Property(googletest-distribution SOURCE_DIR)
|
||||
set(GOOGLETEST_DISTRIB_SOURCE_DIR "${SOURCE_DIR}")
|
||||
|
||||
ExternalProject_Add(
|
||||
googletest
|
||||
DEPENDS googletest-distribution
|
||||
DOWNLOAD_COMMAND ""
|
||||
SOURCE_DIR "${GOOGLETEST_DISTRIB_SOURCE_DIR}/googletest"
|
||||
CMAKE_ARGS -DCMAKE_CXX_FLAGS=-m32
|
||||
# Disable install step
|
||||
INSTALL_COMMAND ""
|
||||
# Wrap download, configure and build steps in a script to log output
|
||||
LOG_DOWNLOAD ON
|
||||
LOG_CONFIGURE ON
|
||||
LOG_BUILD ON)
|
||||
|
||||
|
||||
# Specify include dir
|
||||
set(GTEST_INCLUDE_DIR ${GOOGLETEST_DISTRIB_SOURCE_DIR}/googletest/include)
|
||||
|
||||
# Library
|
||||
ExternalProject_Get_Property(googletest BINARY_DIR)
|
||||
set(GOOGLETEST_BINARY_DIR "${BINARY_DIR}")
|
||||
set(GTEST_LIBRARY_PATH ${GOOGLETEST_BINARY_DIR}/${CMAKE_FIND_LIBRARY_PREFIXES}gtest.a)
|
||||
set(GTEST_LIBRARY gtest)
|
||||
add_library(${GTEST_LIBRARY} UNKNOWN IMPORTED)
|
||||
set_property(TARGET ${GTEST_LIBRARY} PROPERTY IMPORTED_LOCATION
|
||||
${GTEST_LIBRARY_PATH} )
|
||||
add_dependencies(${GTEST_LIBRARY} googletest)
|
||||
|
||||
include_directories(${GTEST_INCLUDE_DIR})
|
||||
|
||||
file(GLOB_RECURSE ORCT2_RIDE_SOURCES "src/ride/*/*.c")
|
||||
file(GLOB_RECURSE ORCT2_RIDE_DEP_SOURCES "src/ride/ride_data.c" "src/ride/track_data.c" "src/ride/track_paint.c" "src/addresses.c" "src/diagnostic.c" "src/hook.c" "src/paint/map_element/map_element.c")
|
||||
file(GLOB_RECURSE ORCT2_PAINT_TEST_SOURCES "PaintTest/*.c" "PaintTest/*.cpp" "PaintTest/*.h")
|
||||
|
||||
add_executable(test-paint ${ORCT2_RIDE_SOURCES} ${ORCT2_RIDE_DEP_SOURCES} ${ORCT2_PAINT_TEST_SOURCES})
|
||||
target_link_libraries(test-paint gtest)
|
||||
set_target_properties(test-paint PROPERTIES COMPILE_FLAGS "-DUSE_GTEST -DNO_VEHICLES")
|
||||
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR 0)
|
||||
|
||||
680
PaintTest/data.c
680
PaintTest/data.c
@@ -17,355 +17,355 @@
|
||||
#include "../src/common.h"
|
||||
|
||||
const utf8string RideNames[91] = {
|
||||
"Spiral Roller Coaster",
|
||||
"Stand-up Roller Coaster",
|
||||
"Suspended Swinging Coaster",
|
||||
"Inverted Roller Coaster",
|
||||
"Junior Roller Coaster",
|
||||
"Miniature Railway",
|
||||
"SpiralRollerCoaster",
|
||||
"StandUpRollerCoaster",
|
||||
"SuspendedSwingingCoaster",
|
||||
"InvertedRollerCoaster",
|
||||
"JuniorRollerCoaster",
|
||||
"MiniatureRailway",
|
||||
"Monorail",
|
||||
"Mini Suspended Coaster",
|
||||
"Boat Ride",
|
||||
"Wooden Wild Mouse",
|
||||
"MiniSuspendedCoaster",
|
||||
"BoatRide",
|
||||
"WoodenWildMouse",
|
||||
"Steeplechase",
|
||||
"Car Ride",
|
||||
"Launched Freefall",
|
||||
"Bobsleigh Coaster",
|
||||
"Observation Tower",
|
||||
"Looping Roller Coaster",
|
||||
"Dinghy Slide",
|
||||
"Mine Train Coaster",
|
||||
"CarRide",
|
||||
"LaunchedFreefall",
|
||||
"BobsleighCoaster",
|
||||
"ObservationTower",
|
||||
"LoopingRollerCoaster",
|
||||
"DinghySlide",
|
||||
"MineTrainCoaster",
|
||||
"Chairlift",
|
||||
"Corkscrew Roller Coaster",
|
||||
"CorkscrewRollerCoaster",
|
||||
"Maze",
|
||||
"Spiral Slide",
|
||||
"Go Karts",
|
||||
"Log Flume",
|
||||
"River Rapids",
|
||||
"SpiralSlide",
|
||||
"GoKarts",
|
||||
"LogFlume",
|
||||
"RiverRapids",
|
||||
"Dodgems",
|
||||
"Pirate Ship",
|
||||
"Swinging Inverter Ship",
|
||||
"Food Stall",
|
||||
"Unknown Stall",
|
||||
"Drink Stall",
|
||||
"Unknown Stall",
|
||||
"PirateShip",
|
||||
"SwingingInverterShip",
|
||||
"FoodStall",
|
||||
"1D",
|
||||
"DrinkStall",
|
||||
"1F",
|
||||
"Shop",
|
||||
"Merry-Go-Round",
|
||||
"Unknown Stall",
|
||||
"Information Kiosk",
|
||||
"MerryGoRound",
|
||||
"22",
|
||||
"InformationKiosk",
|
||||
"Toilets",
|
||||
"Ferris Wheel",
|
||||
"Motion Simulator",
|
||||
"3D Cinema",
|
||||
"Top Spin",
|
||||
"Space Rings",
|
||||
"Reverse Freefall Coaster",
|
||||
"FerrisWheel",
|
||||
"MotionSimulator",
|
||||
"3DCinema",
|
||||
"TopSpin",
|
||||
"SpaceRings",
|
||||
"ReverseFreefallCoaster",
|
||||
"Lift",
|
||||
"Vertical Drop Roller Coaster",
|
||||
"Cash Machine",
|
||||
"VerticalDropRollerCoaster",
|
||||
"CashMachine",
|
||||
"Twist",
|
||||
"Haunted House",
|
||||
"First Aid Room",
|
||||
"Circus Show",
|
||||
"Ghost Train",
|
||||
"Steel Twister Roller Coaster",
|
||||
"Wooden Roller Coaster",
|
||||
"Side-Friction Roller Coaster",
|
||||
"Wild Mouse",
|
||||
"Multi-Dimension Roller Coaster",
|
||||
"Unknown Ride",
|
||||
"Flying Roller Coaster",
|
||||
"Unknown Ride",
|
||||
"Virginia Reel",
|
||||
"Splash Boats",
|
||||
"Mini Helicopters",
|
||||
"Lay-down Roller Coaster",
|
||||
"Suspended Monorail",
|
||||
"Unknown Ride",
|
||||
"Reverser Roller Coaster",
|
||||
"Heartline Twister Coaster",
|
||||
"Mini Golf",
|
||||
"Giga Coaster",
|
||||
"Roto-Drop",
|
||||
"Flying Saucers",
|
||||
"Crooked House",
|
||||
"Monorail Cycles",
|
||||
"Compact Inverted Coaster",
|
||||
"Water Coaster",
|
||||
"Air Powered Vertical Coaster",
|
||||
"Inverted Hairpin Coaster",
|
||||
"Magic Carpet",
|
||||
"Submarine Ride",
|
||||
"River Rafts",
|
||||
"Unknown Ride",
|
||||
"HauntedHouse",
|
||||
"FirstAid",
|
||||
"CircusShow",
|
||||
"GhostTrain",
|
||||
"TwisterRollerCoaster",
|
||||
"WoodenRollerCoaster",
|
||||
"SideFrictionRollerCoaster",
|
||||
"WildMouse",
|
||||
"MultiDimensionRollerCoaster",
|
||||
"MultiDimensionRollerCoasterAlt",
|
||||
"FlyingRollerCoaster",
|
||||
"FlyingRollerCoasterAlt",
|
||||
"VirginiaReel",
|
||||
"SplashBoats",
|
||||
"MiniHelicopters",
|
||||
"LayDownRollerCoaster",
|
||||
"SuspendedMonorail",
|
||||
"LayDownRollerCoasterAlt",
|
||||
"ReverserRollerCoaster",
|
||||
"HeartlineTwisterCoaster",
|
||||
"MiniGolf",
|
||||
"GigaCoaster",
|
||||
"RoToDrop",
|
||||
"FlyingSaucers",
|
||||
"CrookedHouse",
|
||||
"MonorailCycles",
|
||||
"CompactInvertedCoaster",
|
||||
"WaterCoaster",
|
||||
"AirPoweredVerticalCoaster",
|
||||
"InvertedHairpinCoaster",
|
||||
"MagicCarpet",
|
||||
"SubmarineRide",
|
||||
"RiverRafts",
|
||||
"50",
|
||||
"Enterprise",
|
||||
"Unknown Ride",
|
||||
"Unknown Ride",
|
||||
"Unknown Ride",
|
||||
"Unknown Ride",
|
||||
"Inverted Impulse Coaster",
|
||||
"Mini Roller Coaster",
|
||||
"Mine Ride",
|
||||
"Unknown Ride",
|
||||
"LIM Launched Roller Coaster",
|
||||
"52",
|
||||
"53",
|
||||
"54",
|
||||
"55",
|
||||
"InvertedImpulseCoaster",
|
||||
"MiniRollerCoaster",
|
||||
"MineRide",
|
||||
"59",
|
||||
"LimLaunchedRollerCoaster",
|
||||
};
|
||||
|
||||
const utf8string TrackNames[256] = {
|
||||
"Flat",
|
||||
"End Station",
|
||||
"Begin Station",
|
||||
"Middle Station",
|
||||
"25 Deg Up",
|
||||
"60 Deg Up",
|
||||
"Flat to 25 deg Up",
|
||||
"25 Deg up to 60 deg Up",
|
||||
"60 Deg up to 25 deg Up",
|
||||
"25 Deg up to Flat",
|
||||
"25 Deg Down",
|
||||
"60 Deg Down",
|
||||
"Flat to 25 deg Down",
|
||||
"25 Deg Down to 60 deg Down",
|
||||
"60 Deg Down to 25 deg Down",
|
||||
"25 Deg Down to Flat",
|
||||
"Left Quarter Turn 5 Tiles",
|
||||
"Right Quarter Turn 5 Tiles",
|
||||
"Flat to Left Bank",
|
||||
"Flat to Right Bank",
|
||||
"Left Bank to Flat",
|
||||
"Right Bank to Flat",
|
||||
"Banked Left Quarter Turn 5 Tiles",
|
||||
"Banked Right Quarter Turn 5 Tiles",
|
||||
"Left Bank to 25 deg Up",
|
||||
"Right Bank to 25 deg Up",
|
||||
"25 Deg up to Left Bank",
|
||||
"25 Deg up to Right Bank",
|
||||
"Left Bank to 25 deg Down",
|
||||
"Right Bank to 25 deg Down",
|
||||
"25 Deg Down to Left Bank",
|
||||
"25 Deg Down to Right Bank",
|
||||
"Left Bank",
|
||||
"Right Bank",
|
||||
"Left Quarter Turn 5 Tiles 25 deg Up",
|
||||
"Right Quarter Turn 5 Tiles 25 deg Up",
|
||||
"Left Quarter Turn 5 Tiles 25 deg Down",
|
||||
"Right Quarter Turn 5 Tiles 25 deg Down",
|
||||
"S Bend Left",
|
||||
"S Bend Right",
|
||||
"Left Vertical Loop",
|
||||
"Right Vertical Loop",
|
||||
"Left Quarter Turn 3 Tiles",
|
||||
"Right Quarter Turn 3 Tiles",
|
||||
"Left Quarter Turn 3 Tiles Bank",
|
||||
"Right Quarter Turn 3 Tiles Bank",
|
||||
"Left Quarter Turn 3 Tiles 25 deg Up",
|
||||
"Right Quarter Turn 3 Tiles 25 deg Up",
|
||||
"Left Quarter Turn 3 Tiles 25 deg Down",
|
||||
"Right Quarter Turn 3 Tiles 25 deg Down",
|
||||
"Left Quarter Turn 1 Tile",
|
||||
"Right Quarter Turn 1 Tile",
|
||||
"Left Twist Down to Up",
|
||||
"Right Twist Down to Up",
|
||||
"Left Twist up to Down",
|
||||
"Right Twist up to Down",
|
||||
"Half Loop Up",
|
||||
"Half Loop Down",
|
||||
"Left Corkscrew Up",
|
||||
"Right Corkscrew Up",
|
||||
"Left Corkscrew Down",
|
||||
"Right Corkscrew Down",
|
||||
"Flat to 60 deg Up",
|
||||
"60 Deg up to Flat",
|
||||
"Flat to 60 deg Down",
|
||||
"60 Deg Down to Flat",
|
||||
"Tower Base",
|
||||
"Tower Section",
|
||||
"Flat Covered",
|
||||
"25 Deg up Covered",
|
||||
"60 Deg up Covered",
|
||||
"Flat to 25 deg up Covered",
|
||||
"25 Deg up to 60 deg up Covered",
|
||||
"60 Deg up to 25 deg up Covered",
|
||||
"25 Deg up to Flat Covered",
|
||||
"25 Deg Down Covered",
|
||||
"60 Deg Down Covered",
|
||||
"Flat to 25 deg Down Covered",
|
||||
"25 Deg Down to 60 deg Down Covered",
|
||||
"60 Deg Down to 25 deg Down Covered",
|
||||
"25 Deg Down to Flat Covered",
|
||||
"Left Quarter Turn 5 Tiles Covered",
|
||||
"Right Quarter Turn 5 Tiles Covered",
|
||||
"S Bend Left Covered",
|
||||
"S Bend Right Covered",
|
||||
"Left Quarter Turn 3 Tiles Covered",
|
||||
"Right Quarter Turn 3 Tiles Covered",
|
||||
"Left Half Banked Helix up Small",
|
||||
"Right Half Banked Helix up Small",
|
||||
"Left Half Banked Helix Down Small",
|
||||
"Right Half Banked Helix Down Small",
|
||||
"Left Half Banked Helix up Large",
|
||||
"Right Half Banked Helix up Large",
|
||||
"Left Half Banked Helix Down Large",
|
||||
"Right Half Banked Helix Down Large",
|
||||
"Left Quarter Turn 1 Tile 60 deg Up",
|
||||
"Right Quarter Turn 1 Tile 60 deg Up",
|
||||
"Left Quarter Turn 1 Tile 60 deg Down",
|
||||
"Right Quarter Turn 1 Tile 60 deg Down",
|
||||
"EndStation",
|
||||
"BeginStation",
|
||||
"MiddleStation",
|
||||
"25DegUp",
|
||||
"60DegUp",
|
||||
"FlatTo25DegUp",
|
||||
"25DegUpTo60DegUp",
|
||||
"60DegUpTo25DegUp",
|
||||
"25DegUpToFlat",
|
||||
"25DegDown",
|
||||
"60DegDown",
|
||||
"FlatTo25DegDown",
|
||||
"25DegDownTo60DegDown",
|
||||
"60DegDownTo25DegDown",
|
||||
"25DegDownToFlat",
|
||||
"LeftQuarterTurn5Tiles",
|
||||
"RightQuarterTurn5Tiles",
|
||||
"FlatToLeftBank",
|
||||
"FlatToRightBank",
|
||||
"LeftBankToFlat",
|
||||
"RightBankToFlat",
|
||||
"BankedLeftQuarterTurn5Tiles",
|
||||
"BankedRightQuarterTurn5Tiles",
|
||||
"LeftBankTo25DegUp",
|
||||
"RightBankTo25DegUp",
|
||||
"25DegUpToLeftBank",
|
||||
"25DegUpToRightBank",
|
||||
"LeftBankTo25DegDown",
|
||||
"RightBankTo25DegDown",
|
||||
"25DegDownToLeftBank",
|
||||
"25DegDownToRightBank",
|
||||
"LeftBank",
|
||||
"RightBank",
|
||||
"LeftQuarterTurn5Tiles25DegUp",
|
||||
"RightQuarterTurn5Tiles25DegUp",
|
||||
"LeftQuarterTurn5Tiles25DegDown",
|
||||
"RightQuarterTurn5Tiles25DegDown",
|
||||
"SBendLeft",
|
||||
"SBendRight",
|
||||
"LeftVerticalLoop",
|
||||
"RightVerticalLoop",
|
||||
"LeftQuarterTurn3Tiles",
|
||||
"RightQuarterTurn3Tiles",
|
||||
"LeftQuarterTurn3TilesBank",
|
||||
"RightQuarterTurn3TilesBank",
|
||||
"LeftQuarterTurn3Tiles25DegUp",
|
||||
"RightQuarterTurn3Tiles25DegUp",
|
||||
"LeftQuarterTurn3Tiles25DegDown",
|
||||
"RightQuarterTurn3Tiles25DegDown",
|
||||
"LeftQuarterTurn1Tile",
|
||||
"RightQuarterTurn1Tile",
|
||||
"LeftTwistDownToUp",
|
||||
"RightTwistDownToUp",
|
||||
"LeftTwistUpToDown",
|
||||
"RightTwistUpToDown",
|
||||
"HalfLoopUp",
|
||||
"HalfLoopDown",
|
||||
"LeftCorkscrewUp",
|
||||
"RightCorkscrewUp",
|
||||
"LeftCorkscrewDown",
|
||||
"RightCorkscrewDown",
|
||||
"FlatTo60DegUp",
|
||||
"60DegUpToFlat",
|
||||
"FlatTo60DegDown",
|
||||
"60DegDownToFlat",
|
||||
"TowerBase",
|
||||
"TowerSection",
|
||||
"FlatCovered",
|
||||
"25DegUpCovered",
|
||||
"60DegUpCovered",
|
||||
"FlatTo25DegUpCovered",
|
||||
"25DegUpTo60DegUpCovered",
|
||||
"60DegUpTo25DegUpCovered",
|
||||
"25DegUpToFlatCovered",
|
||||
"25DegDownCovered",
|
||||
"60DegDownCovered",
|
||||
"FlatTo25DegDownCovered",
|
||||
"25DegDownTo60DegDownCovered",
|
||||
"60DegDownTo25DegDownCovered",
|
||||
"25DegDownToFlatCovered",
|
||||
"LeftQuarterTurn5TilesCovered",
|
||||
"RightQuarterTurn5TilesCovered",
|
||||
"SBendLeftCovered",
|
||||
"SBendRightCovered",
|
||||
"LeftQuarterTurn3TilesCovered",
|
||||
"RightQuarterTurn3TilesCovered",
|
||||
"LeftHalfBankedHelixUpSmall",
|
||||
"RightHalfBankedHelixUpSmall",
|
||||
"LeftHalfBankedHelixDownSmall",
|
||||
"RightHalfBankedHelixDownSmall",
|
||||
"LeftHalfBankedHelixUpLarge",
|
||||
"RightHalfBankedHelixUpLarge",
|
||||
"LeftHalfBankedHelixDownLarge",
|
||||
"RightHalfBankedHelixDownLarge",
|
||||
"LeftQuarterTurn1Tile60DegUp",
|
||||
"RightQuarterTurn1Tile60DegUp",
|
||||
"LeftQuarterTurn1Tile60DegDown",
|
||||
"RightQuarterTurn1Tile60DegDown",
|
||||
"Brakes",
|
||||
"Rotation Control Toggle",
|
||||
"Inverted 90 deg up to Flat Quarter Loop/Maze",
|
||||
"Left Quarter Banked Helix Large Up",
|
||||
"Right Quarter Banked Helix Large Up",
|
||||
"Left Quarter Banked Helix Large Down",
|
||||
"Right Quarter Banked Helix Large Down",
|
||||
"Left Quarter Helix Large Up",
|
||||
"Right Quarter Helix Large Up",
|
||||
"Left Quarter Helix Large Down",
|
||||
"Right Quarter Helix Large Down",
|
||||
"25 Deg up Left Banked",
|
||||
"25 Deg up Right Banked",
|
||||
"RotationControlToggle",
|
||||
"Inverted90DegUpToFlatQuarterLoop_Maze",
|
||||
"LeftQuarterBankedHelixLargeUp",
|
||||
"RightQuarterBankedHelixLargeUp",
|
||||
"LeftQuarterBankedHelixLargeDown",
|
||||
"RightQuarterBankedHelixLargeDown",
|
||||
"LeftQuarterHelixLargeUp",
|
||||
"RightQuarterHelixLargeUp",
|
||||
"LeftQuarterHelixLargeDown",
|
||||
"RightQuarterHelixLargeDown",
|
||||
"25DegUpLeftBanked",
|
||||
"25DegUpRightBanked",
|
||||
"Waterfall",
|
||||
"Rapids",
|
||||
"On Ride Photo",
|
||||
"25 Deg Down Left Banked",
|
||||
"25 Deg Down Right Banked",
|
||||
"Water Splash",
|
||||
"Flat to 60 deg up Long Base",
|
||||
"60 Deg up to Flat Long Base",
|
||||
"OnRidePhoto",
|
||||
"25DegDownLeftBanked",
|
||||
"25DegDownRightBanked",
|
||||
"WaterSplash",
|
||||
"FlatTo60DegUpLongBase",
|
||||
"60DegUpToFlatLongBase",
|
||||
"Whirlpool",
|
||||
"Flat to 60 deg Down Long Base",
|
||||
"60 Deg up to Flat Long Base 122",
|
||||
"Cable Lift Hill",
|
||||
"Reverse Whoa Belly Slope",
|
||||
"Reverse Whoa Belly Vertical",
|
||||
"90 Deg Up",
|
||||
"90 Deg Down",
|
||||
"60 Deg up to 90 deg Up",
|
||||
"90 Deg Down to 60 deg Down",
|
||||
"90 Deg up to 60 deg Up",
|
||||
"60 Deg Down to 90 deg Down",
|
||||
"Brake for Drop",
|
||||
"Left Eighth to Diag",
|
||||
"Right Eighth to Diag",
|
||||
"Left Eighth to Orthogonal",
|
||||
"Right Eighth to Orthogonal",
|
||||
"Left Eighth Bank to Diag",
|
||||
"Right Eighth Bank to Diag",
|
||||
"Left Eighth Bank to Orthogonal",
|
||||
"Right Eighth Bank to Orthogonal",
|
||||
"Diag Flat",
|
||||
"Diag 25 deg Up",
|
||||
"Diag 60 deg Up",
|
||||
"Diag Flat to 25 deg Up",
|
||||
"Diag 25 deg up to 60 deg Up",
|
||||
"Diag 60 deg up to 25 deg Up",
|
||||
"Diag 25 deg up to Flat",
|
||||
"Diag 25 deg Down",
|
||||
"Diag 60 deg Down",
|
||||
"Diag Flat to 25 deg Down",
|
||||
"Diag 25 deg Down to 60 deg Down",
|
||||
"Diag 60 deg Down to 25 deg Down",
|
||||
"Diag 25 deg Down to Flat",
|
||||
"Diag Flat to 60 deg Up",
|
||||
"Diag 60 deg up to Flat",
|
||||
"Diag Flat to 60 deg Down",
|
||||
"Diag 60 deg Down to Flat",
|
||||
"Diag Flat to Left Bank",
|
||||
"Diag Flat to Right Bank",
|
||||
"Diag Left Bank to Flat",
|
||||
"Diag Right Bank to Flat",
|
||||
"Diag Left Bank to 25 deg Up",
|
||||
"Diag Right Bank to 25 deg Up",
|
||||
"Diag 25 deg up to Left Bank",
|
||||
"Diag 25 deg up to Right Bank",
|
||||
"Diag Left Bank to 25 deg Down",
|
||||
"Diag Right Bank to 25 deg Down",
|
||||
"Diag 25 deg Down to Left Bank",
|
||||
"Diag 25 deg Down to Right Bank",
|
||||
"Diag Left Bank",
|
||||
"Diag Right Bank",
|
||||
"Log Flume Reverser",
|
||||
"Spinning Tunnel",
|
||||
"Left Barrel Roll up to Down",
|
||||
"Right Barrel Roll up to Down",
|
||||
"Left Barrel Roll Down to Up",
|
||||
"Right Barrel Roll Down to Up",
|
||||
"Left Bank to Left Quarter Turn 3 Tiles 25 deg Up",
|
||||
"Right Bank to Right Quarter Turn 3 Tiles 25 deg Up",
|
||||
"Left Quarter Turn 3 Tiles 25 deg Down to Left Bank",
|
||||
"Right Quarter Turn 3 Tiles 25 deg Down to Right Bank",
|
||||
"Powered Lift",
|
||||
"Left Large Half Loop Up",
|
||||
"Right Large Half Loop Up",
|
||||
"Right Large Half Loop Down",
|
||||
"Left Large Half Loop Down",
|
||||
"Left Flyer Twist Up",
|
||||
"Right Flyer Twist Up",
|
||||
"Left Flyer Twist Down",
|
||||
"Right Flyer Twist Down",
|
||||
"Flyer Half Loop Up",
|
||||
"Flyer Half Loop Down",
|
||||
"Left Flyer Corkscrew Up",
|
||||
"Right Flyer Corkscrew Up",
|
||||
"Left Flyer Corkscrew Down",
|
||||
"Right Flyer Corkscrew Down",
|
||||
"Heartline Transfer Up",
|
||||
"Heartline Transfer Down",
|
||||
"Left Heartline Roll",
|
||||
"Right Heartline Roll",
|
||||
"Mini Golf Hole A",
|
||||
"Mini Golf Hole B",
|
||||
"Mini Golf Hole C",
|
||||
"Mini Golf Hole D",
|
||||
"Mini Golf Hole E",
|
||||
"Multidim Inverted Flat to 90 deg Quarter Loop Down",
|
||||
"90 Deg to Inverted Flat Quarter Loop Up",
|
||||
"Inverted Flat to 90 deg Quarter Loop Down",
|
||||
"Left Curved Lift Hill",
|
||||
"Right Curved Lift Hill",
|
||||
"Left Reverser",
|
||||
"Right Reverser",
|
||||
"Air Thrust top Cap",
|
||||
"Air Thrust Vertical Down",
|
||||
"Air Thrust Vertical Down to Level",
|
||||
"Block Brakes",
|
||||
"Left Banked Quarter Turn 3 Tile 25 deg Up",
|
||||
"Right Banked Quarter Turn 3 Tile 25 deg Up",
|
||||
"Left Banked Quarter Turn 3 Tile 25 deg Down",
|
||||
"Right Banked Quarter Turn 3 Tile 25 deg Down",
|
||||
"Left Banked Quarter Turn 5 Tile 25 deg Up",
|
||||
"Right Banked Quarter Turn 5 Tile 25 deg Up",
|
||||
"Left Banked Quarter Turn 5 Tile 25 deg Down",
|
||||
"Right Banked Quarter Turn 5 Tile 25 deg Down",
|
||||
"25 Deg up to Left Banked 25 deg Up",
|
||||
"25 Deg up to Right Banked 25 deg Up",
|
||||
"Left Banked 25 deg up to 25 deg Up",
|
||||
"Right Banked 25 deg up to 25 deg Up",
|
||||
"25 Deg Down to Left Banked 25 deg Down",
|
||||
"25 Deg Down to Right Banked 25 deg Down",
|
||||
"Left Banked 25 deg Down to 25 deg Down",
|
||||
"Right Banked 25 deg Down to 25 deg Down",
|
||||
"Left Banked Flat to Left Banked 25 deg Up",
|
||||
"Right Banked Flat to Right Banked 25 deg Up",
|
||||
"Left Banked 25 deg up to Left Banked Flat",
|
||||
"Right Banked 25 deg up to Right Banked Flat",
|
||||
"Left Banked Flat to Left Banked 25 deg Down",
|
||||
"Right Banked Flat to Right Banked 25 deg Down",
|
||||
"Left Banked 25 deg Down to Left Banked Flat",
|
||||
"Right Banked 25 deg Down to Right Banked Flat",
|
||||
"Flat to Left Banked 25 deg Up",
|
||||
"Flat to Right Banked 25 deg Up",
|
||||
"Left Banked 25 deg up to Flat",
|
||||
"Right Banked 25 deg up to Flat",
|
||||
"Flat to Left Banked 25 deg Down",
|
||||
"Flat to Right Banked 25 deg Down",
|
||||
"Left Banked 25 deg Down to Flat",
|
||||
"Right Banked 25 deg Down to Flat",
|
||||
"Left Quarter Turn 1 Tile 90 deg Up",
|
||||
"Right Quarter Turn 1 Tile 90 deg Up",
|
||||
"Left Quarter Turn 1 Tile 90 deg Down",
|
||||
"Right Quarter Turn 1 Tile 90 deg Down",
|
||||
"Multidim 90 deg up to Inverted Flat Quarter Loop",
|
||||
"Multidim Flat to 90 deg Down Quarter Loop",
|
||||
"FlatTo60DegDownLongBase",
|
||||
"60DegUpToFlatLongBase122",
|
||||
"CableLiftHill",
|
||||
"ReverseWhoaBellySlope",
|
||||
"ReverseWhoaBellyVertical",
|
||||
"90DegUp",
|
||||
"90DegDown",
|
||||
"60DegUpTo90DegUp",
|
||||
"90DegDownTo60DegDown",
|
||||
"90DegUpTo60DegUp",
|
||||
"60DegDownTo90DegDown",
|
||||
"BrakeForDrop",
|
||||
"LeftEighthToDiag",
|
||||
"RightEighthToDiag",
|
||||
"LeftEighthToOrthogonal",
|
||||
"RightEighthToOrthogonal",
|
||||
"LeftEighthBankToDiag",
|
||||
"RightEighthBankToDiag",
|
||||
"LeftEighthBankToOrthogonal",
|
||||
"RightEighthBankToOrthogonal",
|
||||
"DiagFlat",
|
||||
"Diag25DegUp",
|
||||
"Diag60DegUp",
|
||||
"DiagFlatTo25DegUp",
|
||||
"Diag25DegUpTo60DegUp",
|
||||
"Diag60DegUpTo25DegUp",
|
||||
"Diag25DegUpToFlat",
|
||||
"Diag25DegDown",
|
||||
"Diag60DegDown",
|
||||
"DiagFlatTo25DegDown",
|
||||
"Diag25DegDownTo60DegDown",
|
||||
"Diag60DegDownTo25DegDown",
|
||||
"Diag25DegDownToFlat",
|
||||
"DiagFlatTo60DegUp",
|
||||
"Diag60DegUpToFlat",
|
||||
"DiagFlatTo60DegDown",
|
||||
"Diag60DegDownToFlat",
|
||||
"DiagFlatToLeftBank",
|
||||
"DiagFlatToRightBank",
|
||||
"DiagLeftBankToFlat",
|
||||
"DiagRightBankToFlat",
|
||||
"DiagLeftBankTo25DegUp",
|
||||
"DiagRightBankTo25DegUp",
|
||||
"Diag25DegUpToLeftBank",
|
||||
"Diag25DegUpToRightBank",
|
||||
"DiagLeftBankTo25DegDown",
|
||||
"DiagRightBankTo25DegDown",
|
||||
"Diag25DegDownToLeftBank",
|
||||
"Diag25DegDownToRightBank",
|
||||
"DiagLeftBank",
|
||||
"DiagRightBank",
|
||||
"LogFlumeReverser",
|
||||
"SpinningTunnel",
|
||||
"LeftBarrelRollUpToDown",
|
||||
"RightBarrelRollUpToDown",
|
||||
"LeftBarrelRollDownToUp",
|
||||
"RightBarrelRollDownToUp",
|
||||
"LeftBankToLeftQuarterTurn3Tiles25DegUp",
|
||||
"RightBankToRightQuarterTurn3Tiles25DegUp",
|
||||
"LeftQuarterTurn3Tiles25DegDownToLeftBank",
|
||||
"RightQuarterTurn3Tiles25DegDownToRightBank",
|
||||
"PoweredLift",
|
||||
"LeftLargeHalfLoopUp",
|
||||
"RightLargeHalfLoopUp",
|
||||
"RightLargeHalfLoopDown",
|
||||
"LeftLargeHalfLoopDown",
|
||||
"LeftFlyerTwistUp",
|
||||
"RightFlyerTwistUp",
|
||||
"LeftFlyerTwistDown",
|
||||
"RightFlyerTwistDown",
|
||||
"FlyerHalfLoopUp",
|
||||
"FlyerHalfLoopDown",
|
||||
"LeftFlyerCorkscrewUp",
|
||||
"RightFlyerCorkscrewUp",
|
||||
"LeftFlyerCorkscrewDown",
|
||||
"RightFlyerCorkscrewDown",
|
||||
"HeartlineTransferUp",
|
||||
"HeartlineTransferDown",
|
||||
"LeftHeartlineRoll",
|
||||
"RightHeartlineRoll",
|
||||
"MiniGolfHoleA",
|
||||
"MiniGolfHoleB",
|
||||
"MiniGolfHoleC",
|
||||
"MiniGolfHoleD",
|
||||
"MiniGolfHoleE",
|
||||
"MultidimInvertedFlatTo90DegQuarterLoopDown",
|
||||
"90DegToInvertedFlatQuarterLoopUp",
|
||||
"InvertedFlatTo90DegQuarterLoopDown",
|
||||
"LeftCurvedLiftHill",
|
||||
"RightCurvedLiftHill",
|
||||
"LeftReverser",
|
||||
"RightReverser",
|
||||
"AirThrustTopCap",
|
||||
"AirThrustVerticalDown",
|
||||
"AirThrustVerticalDownToLevel",
|
||||
"BlockBrakes",
|
||||
"LeftBankedQuarterTurn3Tile25DegUp",
|
||||
"RightBankedQuarterTurn3Tile25DegUp",
|
||||
"LeftBankedQuarterTurn3Tile25DegDown",
|
||||
"RightBankedQuarterTurn3Tile25DegDown",
|
||||
"LeftBankedQuarterTurn5Tile25DegUp",
|
||||
"RightBankedQuarterTurn5Tile25DegUp",
|
||||
"LeftBankedQuarterTurn5Tile25DegDown",
|
||||
"RightBankedQuarterTurn5Tile25DegDown",
|
||||
"25DegUpToLeftBanked25DegUp",
|
||||
"25DegUpToRightBanked25DegUp",
|
||||
"LeftBanked25DegUpTo25DegUp",
|
||||
"RightBanked25DegUpTo25DegUp",
|
||||
"25DegDownToLeftBanked25DegDown",
|
||||
"25DegDownToRightBanked25DegDown",
|
||||
"LeftBanked25DegDownTo25DegDown",
|
||||
"RightBanked25DegDownTo25DegDown",
|
||||
"LeftBankedFlatToLeftBanked25DegUp",
|
||||
"RightBankedFlatToRightBanked25DegUp",
|
||||
"LeftBanked25DegUpToLeftBankedFlat",
|
||||
"RightBanked25DegUpToRightBankedFlat",
|
||||
"LeftBankedFlatToLeftBanked25DegDown",
|
||||
"RightBankedFlatToRightBanked25DegDown",
|
||||
"LeftBanked25DegDownToLeftBankedFlat",
|
||||
"RightBanked25DegDownToRightBankedFlat",
|
||||
"FlatToLeftBanked25DegUp",
|
||||
"FlatToRightBanked25DegUp",
|
||||
"LeftBanked25DegUpToFlat",
|
||||
"RightBanked25DegUpToFlat",
|
||||
"FlatToLeftBanked25DegDown",
|
||||
"FlatToRightBanked25DegDown",
|
||||
"LeftBanked25DegDownToFlat",
|
||||
"RightBanked25DegDownToFlat",
|
||||
"LeftQuarterTurn1Tile90DegUp",
|
||||
"RightQuarterTurn1Tile90DegUp",
|
||||
"LeftQuarterTurn1Tile90DegDown",
|
||||
"RightQuarterTurn1Tile90DegDown",
|
||||
"Multidim90DegUpToInvertedFlatQuarterLoop",
|
||||
"MultidimFlatTo90DegDownQuarterLoop",
|
||||
};
|
||||
|
||||
const utf8string FlatTrackNames[256] = {
|
||||
@@ -464,7 +464,7 @@ const utf8string FlatTrackNames[256] = {
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"FLAT_TRACK_ELEM_1_X_4_A = 95,",
|
||||
"1x4_A",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
@@ -479,20 +479,20 @@ const utf8string FlatTrackNames[256] = {
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"FLAT_TRACK_ELEM_2_X_2 = 110,",
|
||||
"FLAT_TRACK_ELEM_4_X_4 = 111,",
|
||||
"2x2",
|
||||
"4x4",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"FLAT_TRACK_ELEM_1_X_5 = 116,",
|
||||
"1x5",
|
||||
"",
|
||||
"FLAT_TRACK_ELEM_1_X_1_A = 118,",
|
||||
"FLAT_TRACK_ELEM_1_X_4_B = 119,",
|
||||
"1x1_A",
|
||||
"1x4_B",
|
||||
"",
|
||||
"FLAT_TRACK_ELEM_1_X_1_B = 121,",
|
||||
"FLAT_TRACK_ELEM_1_X_4_C = 122,",
|
||||
"FLAT_TRACK_ELEM_3_X_3 = 123,",
|
||||
"1x1_B",
|
||||
"1x4_C",
|
||||
"3x3",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
|
||||
@@ -15,54 +15,129 @@
|
||||
#pragma endregion
|
||||
|
||||
#ifdef USE_GTEST
|
||||
|
||||
#include <algorithm>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
extern "C" {
|
||||
#include "main.h"
|
||||
#include "../src/rct2.h"
|
||||
#include "../src/ride/ride.h"
|
||||
#include "../src/ride/ride_data.h"
|
||||
#include "../src/ride/track.h"
|
||||
#include "../src/ride/track_data.h"
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
uint8 rideType;
|
||||
std::vector<uint8> trackTypes;
|
||||
} TestCase;
|
||||
|
||||
extern const utf8string RideNames[91];
|
||||
extern const utf8string TrackNames[256];
|
||||
extern const utf8string FlatTrackNames[256];
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
initHooks();
|
||||
::testing::InitGoogleTest(&argc, argv);
|
||||
return RUN_ALL_TESTS();
|
||||
std::vector<TestCase> testCases;
|
||||
|
||||
bool gTestColor = true;
|
||||
for (int i = 0; i < argc; ++i) {
|
||||
char *arg = argv[i];
|
||||
if (strcmp(arg, "--gtest_color=no") == 0) {
|
||||
gTestColor = false;
|
||||
}
|
||||
}
|
||||
|
||||
const utf8 *ansiRed = gTestColor ? "\x1b[31m" : "";
|
||||
const utf8 *ansiGreen = gTestColor ? "\x1b[32m" : "";
|
||||
const utf8 *ansiReset = gTestColor ? "\x1b[0m" : "";
|
||||
|
||||
for (uint8 rideType = 0; rideType < 91; rideType++) {
|
||||
if (!rideIsImplemented(rideType)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
TestCase testCase = {
|
||||
.rideType = rideType
|
||||
};
|
||||
|
||||
if (ride_type_has_flag(rideType, RIDE_TYPE_FLAG_FLAT_RIDE)) {
|
||||
testCase.trackTypes.push_back(RideConstructionDefaultTrackType[rideType]);
|
||||
} else {
|
||||
for (int trackType = 0; trackType < 256; trackType++) {
|
||||
if (rideSupportsTrackType(rideType, trackType)) {
|
||||
testCase.trackTypes.push_back(trackType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
testCases.push_back(testCase);
|
||||
}
|
||||
|
||||
int testCaseCount = (int) testCases.size();
|
||||
int testCount = 0;
|
||||
for (auto &&tc : testCases) {
|
||||
testCount += tc.trackTypes.size();
|
||||
}
|
||||
|
||||
printf("%s[==========]%s Running %d tests from %d test cases.\n", ansiGreen, ansiReset, testCount, testCaseCount);
|
||||
printf("%s[----------]%s Global test environment set-up.\n", ansiGreen, ansiReset);
|
||||
initHooks();
|
||||
|
||||
int successCount = 0;
|
||||
std::vector<utf8string> failures;
|
||||
for (auto &&tc : testCases) {
|
||||
const utf8string rideTypeName = RideNames[tc.rideType];
|
||||
printf("%s[----------]%s %lu tests from %s\n", ansiGreen, ansiReset, tc.trackTypes.size(), rideTypeName);
|
||||
|
||||
for (auto &&trackType : tc.trackTypes) {
|
||||
utf8string trackTypeName;
|
||||
if (ride_type_has_flag(tc.rideType, RIDE_TYPE_FLAG_FLAT_RIDE)) {
|
||||
trackTypeName = FlatTrackNames[trackType];
|
||||
} else {
|
||||
trackTypeName = TrackNames[trackType];
|
||||
}
|
||||
|
||||
printf("%s[ RUN ]%s %s.%s\n", ansiGreen, ansiReset, rideTypeName, trackTypeName);
|
||||
bool success = testTrackPainting(tc.rideType, trackType);
|
||||
if (!success) {
|
||||
printf("%s[ FAILED ]%s %s.%s (0 ms)\n", ansiRed, ansiReset, rideTypeName, trackTypeName);
|
||||
utf8string testCaseName = new utf8[64];
|
||||
sprintf(testCaseName, "%s.%s", rideTypeName, trackTypeName);
|
||||
failures.push_back(testCaseName);
|
||||
} else {
|
||||
printf("%s[ OK ]%s %s.%s (0 ms)\n", ansiGreen, ansiReset, rideTypeName, trackTypeName);
|
||||
successCount++;
|
||||
}
|
||||
}
|
||||
|
||||
printf("%s[----------]%s %lu tests from %s (0 ms total)\n", ansiGreen, ansiReset, tc.trackTypes.size(),
|
||||
rideTypeName);
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
printf("%s[----------]%s Global test environment tear-down\n", ansiGreen, ansiReset);
|
||||
printf("%s[==========]%s %d tests from %d test cases ran. (0 ms total).\n", ansiGreen, ansiReset, testCount,
|
||||
testCaseCount);
|
||||
printf("%s[ PASSED ]%s %d tests.\n", ansiGreen, ansiReset, successCount);
|
||||
|
||||
if (failures.size() > 0) {
|
||||
printf("%s[ FAILED ]%s %lu tests, listed below:\n", ansiRed, ansiReset, failures.size());
|
||||
|
||||
for (auto &&failure : failures) {
|
||||
printf("%s[ FAILED ]%s %s\n", ansiRed, ansiReset, failure);
|
||||
delete(failure);
|
||||
}
|
||||
|
||||
printf("\n");
|
||||
|
||||
printf("%lu FAILED TESTS\n", failures.size());
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
class RidePaintTest : public testing::TestWithParam<uint8> {
|
||||
};
|
||||
|
||||
TEST_P(RidePaintTest, TestRidePainting) {
|
||||
bool success = testRide(GetParam());
|
||||
|
||||
ASSERT_TRUE(success);
|
||||
}
|
||||
|
||||
std::vector<uint8> ReadTestCasesFromDisk() {
|
||||
std::vector<uint8> rides;
|
||||
|
||||
for (int i = 0; i < 91; i++) {
|
||||
if (!rideIsImplemented(i)) {
|
||||
continue;
|
||||
}
|
||||
rides.push_back(i);
|
||||
}
|
||||
|
||||
return rides;
|
||||
}
|
||||
|
||||
inline std::string CustomParamNameFunction(const ::testing::TestParamInfo<uint8>& info) {
|
||||
return std::to_string(info.param);
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(
|
||||
ParameterizedTest, // Instantiation name can be chosen arbitrarily.
|
||||
RidePaintTest,
|
||||
testing::ValuesIn(ReadTestCasesFromDisk()),
|
||||
CustomParamNameFunction
|
||||
);
|
||||
|
||||
#endif // USE_GTEST
|
||||
|
||||
@@ -476,6 +476,18 @@ int getTrackSequenceCount(uint8 rideType, uint8 trackType) {
|
||||
return sequenceCount;
|
||||
}
|
||||
|
||||
bool rideSupportsTrackType(int rideType, int trackType) {
|
||||
TRACK_PAINT_FUNCTION_GETTER newPaintGetter = RideTypeTrackPaintFunctions[rideType];
|
||||
|
||||
if (newPaintGetter == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool supportsTrackType = (newPaintGetter(trackType, 0) != NULL);
|
||||
|
||||
return supportsTrackType;
|
||||
}
|
||||
|
||||
bool testTrackElement(uint8 rideType, uint8 trackType, utf8string *error) {
|
||||
if (rideType == RIDE_TYPE_CHAIRLIFT) {
|
||||
if (trackType == TRACK_ELEM_BEGIN_STATION || trackType == TRACK_ELEM_MIDDLE_STATION || trackType == TRACK_ELEM_END_STATION) {
|
||||
@@ -595,6 +607,26 @@ bool rideIsImplemented(int rideType) {
|
||||
return (newPaintGetter != 0);
|
||||
}
|
||||
|
||||
bool testTrackPainting(int rideType, int trackType) {
|
||||
TRACK_PAINT_FUNCTION_GETTER newPaintGetter = RideTypeTrackPaintFunctions[rideType];
|
||||
if (newPaintGetter == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (newPaintGetter(trackType, 0) == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
utf8string error = malloc(2048);
|
||||
bool success = testTrackElement(rideType, trackType, &error);
|
||||
if (!success) {
|
||||
printf("%s\n", error);
|
||||
}
|
||||
free(error);
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
bool testRide(int rideType) {
|
||||
TRACK_PAINT_FUNCTION_GETTER newPaintGetter = RideTypeTrackPaintFunctions[rideType];
|
||||
|
||||
|
||||
@@ -17,3 +17,5 @@
|
||||
bool testRide(int rideType);
|
||||
void initHooks();
|
||||
bool rideIsImplemented(int rideType);
|
||||
bool rideSupportsTrackType(int rideType, int trackType);
|
||||
bool testTrackPainting(int rideType, int trackType);
|
||||
|
||||
Reference in New Issue
Block a user