code: def test_cpp_wrapper(self):
      f, args = self._generate(device="cuda")
      compiled = torch.compile(f, dynamic=True)
      with config.patch("cpp_wrapper", True):
          result, code = run_and_get_cpp_code(compiled, *args)
  
      FileCheck().check(
          "auto pool1 = at::empty_strided({(4L*s0*s1) + (align(4L*(static_cast<long>(s0*s0)))), }, {1L, }"
      ).check_next(
          "auto buf0 = alloc_from_pool(pool1, 0, at::kFloat, {s0, s0}, {s0, 1L});"
      ).check(
          "auto buf1 = alloc_from_pool(pool1, align((4*s0) + (4*s0*((-1) + s0))),"
      ).run(
          code
      )
      self.assertTrue(same(f(*args), result))
  
file_path: pytorch/test/inductor/test_memory_planning.py
imports: import sys
  from torch.testing._internal.common_utils import IS_CI, IS_WINDOWS, skipIfRocm
  import unittest
  from typing import List
  import torch
  from test_torchinductor import run_and_get_cpp_code
  from torch._C import FileCheck
  from torch._dynamo.test_case import run_tests, TestCase
  from torch._dynamo.utils import same
  from torch._inductor import config
  from torch.utils._triton import has_triton
label_desc: Use image node_id 3 for calling the TestMemoryPlanning obj's underlying member method code with example usage: obj.test_cpp_wrapper() without return types