|
| 1 | +source [expr {[info exists ::env(TESTS_DIR)] ? "$env(TESTS_DIR)/interactive/ly.tcl" : "ly.tcl"}] |
| 2 | + |
| 3 | +set mdir $::env(YANG_MODULES_DIR) |
| 4 | +set ddir $::env(TESTS_DIR)/data |
| 5 | + |
| 6 | +test sid_generate {} { |
| 7 | +-setup $ly_setup -cleanup $ly_cleanup -body { |
| 8 | + set pattern "(?s)^" |
| 9 | + append pattern {.*"module-name": "test-sid",} |
| 10 | + append pattern {.*"module-revision": "2026-08-11",} |
| 11 | + append pattern {.*"sid-file-status": "unpublished",} |
| 12 | + append pattern {.*"description": "Generated by libyang } |
| 13 | + append pattern {.*"entry-point": "1000",} |
| 14 | + append pattern {.*"size": "20"} |
| 15 | + append pattern {.*"identifier": "test-sid",} |
| 16 | + append pattern {.*"status": "unstable",} |
| 17 | + append pattern {.*"sid": "1000"} |
| 18 | + append pattern {.*"identifier": "/test-sid:test-container",} |
| 19 | + append pattern {.*"status": "unstable",} |
| 20 | + append pattern {.*"sid": "1001"} |
| 21 | + append pattern {.*"identifier": "/test-sid:test-container/test-leaf1",} |
| 22 | + append pattern {.*"status": "unstable",} |
| 23 | + append pattern {.*"sid": "1002"} |
| 24 | + append pattern {.*"identifier": "/test-sid:test-container/test-leaf2",} |
| 25 | + append pattern {.*"status": "unstable",} |
| 26 | + append pattern {.*"sid": "1003"} |
| 27 | + |
| 28 | + ly_cmd "verb error" |
| 29 | + ly_cmd "add $mdir/test-sid-v1.yang" |
| 30 | + ly_cmd "sid generate 1000:20 test-sid" $pattern |
| 31 | +}} |
| 32 | + |
| 33 | +test sid_generate_published {} { |
| 34 | +-setup $ly_setup -cleanup $ly_cleanup -body { |
| 35 | + set pattern "(?s)^" |
| 36 | + append pattern {(?=.*"module-name": "test-sid",)} |
| 37 | + append pattern {(?=.*"module-revision": "2026-08-11",)} |
| 38 | + append pattern {(?=.*"entry-point": "1000",)} |
| 39 | + append pattern {(?=.*"size": "20")} |
| 40 | + append pattern {(?=.*"identifier": "test-sid",)} |
| 41 | + append pattern {(?=.*"sid": "1000")} |
| 42 | + append pattern {(?=.*"identifier": "/test-sid:test-container",)} |
| 43 | + append pattern {(?=.*"sid": "1001")} |
| 44 | + append pattern {(?=.*"identifier": "/test-sid:test-container/test-leaf1",)} |
| 45 | + append pattern {(?=.*"sid": "1002")} |
| 46 | + append pattern {(?=.*"identifier": "/test-sid:test-container/test-leaf2",)} |
| 47 | + append pattern {(?=.*"sid": "1003")} |
| 48 | + append pattern {(?!.*sid-file-status)} |
| 49 | + append pattern {(?!.*"status")} |
| 50 | + |
| 51 | + ly_cmd "verb error" |
| 52 | + ly_cmd "add $mdir/test-sid-v1.yang" |
| 53 | + ly_cmd "sid generate 1000:20 published test-sid" $pattern |
| 54 | +}} |
| 55 | + |
| 56 | +test sid_update {} { |
| 57 | +-setup $ly_setup -cleanup $ly_cleanup -body { |
| 58 | + set pattern "(?s)^" |
| 59 | + append pattern {.*"module-name": "test-sid",} |
| 60 | + append pattern {.*"module-revision": "2026-08-11",} |
| 61 | + append pattern {.*"sid-file-version": 1,} |
| 62 | + append pattern {.*"sid-file-status": "unpublished",} |
| 63 | + append pattern {.*"entry-point": "1000",} |
| 64 | + append pattern {.*"size": "20"} |
| 65 | + append pattern {.*"identifier": "test-sid",} |
| 66 | + append pattern {.*"status": "unstable",} |
| 67 | + append pattern {.*"sid": "1000"} |
| 68 | + append pattern {.*"identifier": "/test-sid:test-container",} |
| 69 | + append pattern {.*"status": "unstable",} |
| 70 | + append pattern {.*"sid": "1001"} |
| 71 | + append pattern {.*"identifier": "/test-sid:test-container/test-leaf1",} |
| 72 | + append pattern {.*"status": "unstable",} |
| 73 | + append pattern {.*"sid": "1002"} |
| 74 | + append pattern {.*"identifier": "/test-sid:test-container/test-leaf2",} |
| 75 | + append pattern {.*"status": "obsolete",} |
| 76 | + append pattern {.*"sid": "1003"} |
| 77 | + append pattern {.*"identifier": "/test-sid:test-container/test-leaf3",} |
| 78 | + append pattern {.*"status": "unstable",} |
| 79 | + append pattern {.*"sid": "1004"} |
| 80 | + |
| 81 | + ly_cmd "verb error" |
| 82 | + ly_cmd "add $mdir/test-sid-v2.yang" |
| 83 | + ly_cmd "sid update $ddir/test.sid test-sid" $pattern |
| 84 | +}} |
| 85 | + |
| 86 | +test sid_update_published {} { |
| 87 | +-setup $ly_setup -cleanup $ly_cleanup -body { |
| 88 | + set pattern "(?s)^" |
| 89 | + append pattern {(?=.*"module-name": "test-sid",)} |
| 90 | + append pattern {(?=.*"module-revision": "2026-08-11",)} |
| 91 | + append pattern {(?=.*"sid-file-version": 1,)} |
| 92 | + append pattern {(?=.*"entry-point": "1000",)} |
| 93 | + append pattern {(?=.*"size": "20")} |
| 94 | + append pattern {(?=.*"identifier": "test-sid",)} |
| 95 | + append pattern {(?=.*"sid": "1000")} |
| 96 | + append pattern {(?=.*"identifier": "/test-sid:test-container",)} |
| 97 | + append pattern {(?=.*"sid": "1001")} |
| 98 | + append pattern {(?=.*"identifier": "/test-sid:test-container/test-leaf1",)} |
| 99 | + append pattern {(?=.*"sid": "1002")} |
| 100 | + append pattern {(?=.*"identifier": "/test-sid:test-container/test-leaf2",)} |
| 101 | + append pattern {(?=.*"status": "obsolete",)} |
| 102 | + append pattern {(?=.*"sid": "1003")} |
| 103 | + append pattern {(?=.*"identifier": "/test-sid:test-container/test-leaf3",)} |
| 104 | + append pattern {(?=.*"sid": "1004")} |
| 105 | + append pattern {(?!.*sid-file-status)} |
| 106 | + append pattern {(?!.*"unstable")} |
| 107 | + |
| 108 | + ly_cmd "verb error" |
| 109 | + ly_cmd "add $mdir/test-sid-v2.yang" |
| 110 | + ly_cmd "sid update $ddir/test.sid published test-sid" $pattern |
| 111 | +}} |
| 112 | + |
| 113 | +test sid_range_add {} { |
| 114 | +-setup $ly_setup -cleanup $ly_cleanup -body { |
| 115 | + set pattern "^(?!.*sid-file-version)" |
| 116 | + append pattern {.*"module-name": "test-sid",} |
| 117 | + append pattern {.*"module-revision": "2026-08-11",} |
| 118 | + append pattern {.*"description": "Generated by libyang } |
| 119 | + append pattern {.*"entry-point": "1000",} |
| 120 | + append pattern {.*"size": "20"} |
| 121 | + append pattern {.*"entry-point": "2000",} |
| 122 | + append pattern {.*"size": "10"} |
| 123 | + append pattern {.*"identifier": "test-sid",} |
| 124 | + append pattern {.*"status": "unstable",} |
| 125 | + append pattern {.*"sid": "1000"} |
| 126 | + append pattern {.*"identifier": "/test-sid:test-container",} |
| 127 | + append pattern {.*"status": "unstable",} |
| 128 | + append pattern {.*"sid": "1001"} |
| 129 | + append pattern {.*"identifier": "/test-sid:test-container/test-leaf1",} |
| 130 | + append pattern {.*"status": "unstable",} |
| 131 | + append pattern {.*"sid": "1002"} |
| 132 | + append pattern {.*"identifier": "/test-sid:test-container/test-leaf2",} |
| 133 | + append pattern {.*"status": "unstable",} |
| 134 | + append pattern {.*"sid": "1003"} |
| 135 | + |
| 136 | + ly_cmd "sid range-add 2000:10 $ddir/test.sid" $pattern |
| 137 | +}} |
| 138 | + |
| 139 | +test sid_generate_output_file {Test generating .sid file into a file} { |
| 140 | +-setup $ly_setup -cleanup $ly_cleanup -body { |
| 141 | + set pattern "(?s)^" |
| 142 | + append pattern {.*"module-name": "test-sid",} |
| 143 | + append pattern {.*"module-revision": "2026-08-11",} |
| 144 | + append pattern {.*"sid-file-status": "unpublished",} |
| 145 | + append pattern {.*"entry-point": "1000",} |
| 146 | + append pattern {.*"size": "20"} |
| 147 | + append pattern {.*"identifier": "test-sid",} |
| 148 | + append pattern {.*"sid": "1000"} |
| 149 | + append pattern {.*"identifier": "/test-sid:test-container/test-leaf2",} |
| 150 | + append pattern {.*"sid": "1003"} |
| 151 | + |
| 152 | + ly_cmd "verb error" |
| 153 | + ly_cmd "add $mdir/test-sid-v1.yang" |
| 154 | + ly_cmd "sid -o test_output.sid generate 1000:20 test-sid" |
| 155 | + |
| 156 | + if {![file exists "test_output.sid"]} { |
| 157 | + error "Test failed: yanglint did not create 'test_output.sid'!" |
| 158 | + } |
| 159 | + |
| 160 | + set fp [open "test_output.sid" r] |
| 161 | + set file_data [read $fp] |
| 162 | + close $fp |
| 163 | + |
| 164 | + if {![regexp $pattern $file_data]} { |
| 165 | + error "Test failed: The file content did not match!\nFile contained:\n$file_data" |
| 166 | + } |
| 167 | + |
| 168 | + file delete "test_output.sid" |
| 169 | +}} |
| 170 | + |
| 171 | +cleanupTests |
0 commit comments