| ... | @@ -305,6 +305,51 @@ pub fn addTestsForTarget(db: *Debugger, target: Target) void { | ... | @@ -305,6 +305,51 @@ pub fn addTestsForTarget(db: *Debugger, target: Target) void { |
| 305 | \\1 breakpoints deleted; 0 breakpoint locations disabled. | 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 | db.addLldbTest( | 353 | db.addLldbTest( |
| 309 | "errors", | 354 | "errors", |
| 310 | target, | 355 | target, |
| ... | @@ -403,6 +448,71 @@ pub fn addTestsForTarget(db: *Debugger, target: Target) void { | ... | @@ -403,6 +448,71 @@ pub fn addTestsForTarget(db: *Debugger, target: Target) void { |
| 403 | \\1 breakpoints deleted; 0 breakpoint locations disabled. | 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 | db.addLldbTest( | 516 | db.addLldbTest( |
| 407 | "storage", | 517 | "storage", |
| 408 | target, | 518 | target, |