| ... | ... | @@ -305,6 +305,51 @@ pub fn addTestsForTarget(db: *Debugger, target: Target) void { |
| 305 | 305 | \\1 breakpoints deleted; 0 breakpoint locations disabled. |
| 306 | 306 | }, |
| 307 | 307 | ); |
| 308 | db.addLldbTest( |
| 309 | "enums", |
| 310 | target, |
| 311 | &.{ |
| 312 | .{ |
| 313 | .path = "enums.zig", |
| 314 | .source = |
| 315 | \\const Enums = struct { |
| 316 | \\ const Zero = enum(u4) { _ }; |
| 317 | \\ const One = enum { first }; |
| 318 | \\ const Two = enum(i32) { first, second, _ }; |
| 319 | \\ const Three = enum { first, second, third }; |
| 320 | \\ |
| 321 | \\ zero: Zero = @enumFromInt(13), |
| 322 | \\ one: One = .first, |
| 323 | \\ two: Two = @enumFromInt(-1234), |
| 324 | \\ three: Three = .second, |
| 325 | \\}; |
| 326 | \\fn testEnums(enums: Enums) void { |
| 327 | \\ _ = enums; |
| 328 | \\} |
| 329 | \\pub fn main() void { |
| 330 | \\ testEnums(.{}); |
| 331 | \\} |
| 332 | \\ |
| 333 | , |
| 334 | }, |
| 335 | }, |
| 336 | \\breakpoint set --file enums.zig --source-pattern-regexp '_ = enums;' |
| 337 | \\process launch |
| 338 | \\frame variable --show-types enums |
| 339 | \\breakpoint delete --force 1 |
| 340 | , |
| 341 | &.{ |
| 342 | \\(lldb) frame variable --show-types enums |
| 343 | \\(root.enums.Enums) enums = { |
| 344 | \\ (root.enums.Enums.Zero) zero = @enumFromInt(13) |
| 345 | \\ (root.enums.Enums.One) one = .first |
| 346 | \\ (root.enums.Enums.Two) two = @enumFromInt(-1234) |
| 347 | \\ (root.enums.Enums.Three) three = .second |
| 348 | \\} |
| 349 | \\(lldb) breakpoint delete --force 1 |
| 350 | \\1 breakpoints deleted; 0 breakpoint locations disabled. |
| 351 | }, |
| 352 | ); |
| 308 | 353 | db.addLldbTest( |
| 309 | 354 | "errors", |
| 310 | 355 | target, |
| ... | ... | @@ -403,6 +448,71 @@ pub fn addTestsForTarget(db: *Debugger, target: Target) void { |
| 403 | 448 | \\1 breakpoints deleted; 0 breakpoint locations disabled. |
| 404 | 449 | }, |
| 405 | 450 | ); |
| 451 | db.addLldbTest( |
| 452 | "unions", |
| 453 | target, |
| 454 | &.{ |
| 455 | .{ |
| 456 | .path = "unions.zig", |
| 457 | .source = |
| 458 | \\const Unions = struct { |
| 459 | \\ const Enum = enum { first, second, third }; |
| 460 | \\ const Untagged = extern union { |
| 461 | \\ u32: u32, |
| 462 | \\ i32: i32, |
| 463 | \\ f32: f32, |
| 464 | \\ }; |
| 465 | \\ const SafetyTagged = union { |
| 466 | \\ void: void, |
| 467 | \\ en: Enum, |
| 468 | \\ eu: error{Error}!Enum, |
| 469 | \\ }; |
| 470 | \\ const Tagged = union(enum) { |
| 471 | \\ void: void, |
| 472 | \\ en: Enum, |
| 473 | \\ eu: error{Error}!Enum, |
| 474 | \\ }; |
| 475 | \\ |
| 476 | \\ untagged: Untagged = .{ .f32 = -1.5 }, |
| 477 | \\ safety_tagged: SafetyTagged = .{ .en = .second }, |
| 478 | \\ tagged: Tagged = .{ .eu = error.Error }, |
| 479 | \\}; |
| 480 | \\fn testUnions(unions: Unions) void { |
| 481 | \\ _ = unions; |
| 482 | \\} |
| 483 | \\pub fn main() void { |
| 484 | \\ testUnions(.{}); |
| 485 | \\} |
| 486 | \\ |
| 487 | , |
| 488 | }, |
| 489 | }, |
| 490 | \\breakpoint set --file unions.zig --source-pattern-regexp '_ = unions;' |
| 491 | \\process launch |
| 492 | \\frame variable --show-types unions |
| 493 | \\breakpoint delete --force 1 |
| 494 | , |
| 495 | &.{ |
| 496 | \\(lldb) frame variable --show-types unions |
| 497 | \\(root.unions.Unions) unions = { |
| 498 | \\ (root.unions.Unions.Untagged) untagged = { |
| 499 | \\ (u32) u32 = 3217031168 |
| 500 | \\ (i32) i32 = -1077936128 |
| 501 | \\ (f32) f32 = -1.5 |
| 502 | \\ } |
| 503 | \\ (root.unions.Unions.SafetyTagged) safety_tagged = { |
| 504 | \\ (root.unions.Unions.Enum) en = .second |
| 505 | \\ } |
| 506 | \\ (root.unions.Unions.Tagged) tagged = { |
| 507 | \\ (error{Error}!root.unions.Unions.Enum) eu = { |
| 508 | \\ (error{Error}) error = error.Error |
| 509 | \\ } |
| 510 | \\ } |
| 511 | \\} |
| 512 | \\(lldb) breakpoint delete --force 1 |
| 513 | \\1 breakpoints deleted; 0 breakpoint locations disabled. |
| 514 | }, |
| 515 | ); |
| 406 | 516 | db.addLldbTest( |
| 407 | 517 | "storage", |
| 408 | 518 | target, |