Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(281)

Side by Side Diff: ui/accessibility/ax_tree_unittest.cc

Issue 2323103002: Add fuzzer for AXTree and fix a couple of bugs it found. (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/accessibility/ax_tree.h" 5 #include "ui/accessibility/ax_tree.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 fake_delegate.subtree_reparented_finished_ids(); 425 fake_delegate.subtree_reparented_finished_ids();
426 std::vector<int> node_reparented = 426 std::vector<int> node_reparented =
427 fake_delegate.node_reparented_finished_ids(); 427 fake_delegate.node_reparented_finished_ids();
428 ASSERT_EQ(std::find(created.begin(), created.end(), 3), created.end()); 428 ASSERT_EQ(std::find(created.begin(), created.end(), 3), created.end());
429 ASSERT_NE(std::find(subtree_reparented.begin(), subtree_reparented.end(), 3), 429 ASSERT_NE(std::find(subtree_reparented.begin(), subtree_reparented.end(), 3),
430 subtree_reparented.end()); 430 subtree_reparented.end());
431 ASSERT_EQ(std::find(node_reparented.begin(), node_reparented.end(), 3), 431 ASSERT_EQ(std::find(node_reparented.begin(), node_reparented.end(), 3),
432 node_reparented.end()); 432 node_reparented.end());
433 } 433 }
434 434
435 // UAF caught by ax_tree_fuzzer
436 TEST(AXTreeTest, BogusAXTree) {
437 AXTreeUpdate initial_state;
438 AXNodeData node;
439 node.id = 0;
440 node.state = 0;
441 initial_state.nodes.push_back(node);
442 initial_state.nodes.push_back(node);
443 ui::AXTree tree;
444 tree.Unserialize(initial_state);
445 }
446
447 // UAF caught by ax_tree_fuzzer
448 TEST(AXTreeTest, BogusAXTree2) {
449 AXTreeUpdate initial_state;
450 AXNodeData node;
451 node.id = 0;
452 node.state = 0;
453 initial_state.nodes.push_back(node);
454 AXNodeData node2;
455 node2.id = 0;
456 node2.state = 0;
457 node2.child_ids.push_back(0);
458 node2.child_ids.push_back(0);
459 initial_state.nodes.push_back(node2);
460 ui::AXTree tree;
461 tree.Unserialize(initial_state);
462 }
463
435 } // namespace ui 464 } // namespace ui
OLDNEW
« ui/accessibility/ax_tree_fuzzer.cc ('K') | « ui/accessibility/ax_tree_fuzzer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698